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

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 无用 1
    打赏 举报
查看更多回答(2条)

相关推荐 更多相似问题