yaozhanggaogao
2021-06-19 11:46
采纳率: 66.7%
浏览 136

SQL如何使两个select语句查询结果合并一个?

  

查询语句1

SELECT MONTH(`询盘表`.`询盘日期`)as `月份`, `询盘表`.`来源`, count(`询盘表`.id) `询盘` FROM `询盘表` GROUP BY MONTH(`询盘表`.`询盘日期`),  `询盘表`.`来源`

 


查询语句2

SELECT MONTH(`询盘表`.`询盘日期`) as `月份`, `询盘表`.`来源`, count(`询盘表`.`有效否`)as  `有效` FROM `询盘表` WHERE `询盘表`.`有效否` = '有' GROUP BY MONTH(`询盘表`.`询盘日期`),  `询盘表`.`来源`

 

合并成

 

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • CSDN专家-文盲老顾 2021-06-19 11:59
    已采纳
    --原语句1
    SELECT MONTH(`询盘表`.`询盘日期`)as `月份`
    	, `询盘表`.`来源`
    	, count(`询盘表`.id) `询盘` 
    FROM `询盘表` 
    GROUP BY MONTH(`询盘表`.`询盘日期`),  `询盘表`.`来源`
    
    --原语句2
    SELECT MONTH(`询盘表`.`询盘日期`) as `月份`
    	, `询盘表`.`来源`
    	, count(`询盘表`.`有效否`)as  `有效` 
    FROM `询盘表` 
    WHERE `询盘表`.`有效否` = '有' 
    GROUP BY MONTH(`询盘表`.`询盘日期`),  `询盘表`.`来源`
    
    -- 合并后语句
    SELECT MONTH(`询盘表`.`询盘日期`) as `月份`
    	, `询盘表`.`来源`
    	, count(`询盘表`.id) `询盘`
    	, sum(case when `询盘表`.`有效否` = '有' then 1 else 0 end) as  `有效`
    FROM `询盘表` 
    GROUP BY MONTH(`询盘表`.`询盘日期`),  `询盘表`.`来源`

    group 的时候,本身就可以根据条件进行计算的,把符合条件的汇总或求和或求平均都是支持的

    已采纳该答案
    评论
    解决 2 无用
    打赏 举报
  • li.siyuan 2021-06-19 11:51
    SELECT MONTH(`询盘表`.`询盘日期`)as `月份`, `询盘表`.`来源`, count(`询盘表`.id) `询盘` FROM `询盘表` GROUP BY MONTH(`询盘表`.`询盘日期`),  `询盘表`.`来源`
    
    union all
    
    SELECT MONTH(`询盘表`.`询盘日期`) as `月份`, `询盘表`.`来源`, count(`询盘表`.`有效否`)as  `有效` FROM `询盘表` WHERE `询盘表`.`有效否` = '有' GROUP BY MONTH(`询盘表`.`询盘日期`),  `询盘表`.`来源`
    

    优化SQL的话 楼上正解 和平两个sql 的话使用 union all

    评论
    解决 无用
    打赏 举报
  • 有问必答小助手 2021-06-22 13:55

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题