聚合函数

有四段不同条件的count,group by ,想合并结果,有什么办法呢?

愤怒的老头 发布于 2021-7-25 14:15 (编辑于 2021-9-7 09:56)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2021-7-25 14:32(编辑于 2021-7-25 14:52)

你把四段sql结果都当成一个表,然后用 月份 做主键,四个表(sql语句结果)做左连接合并在一起啊

select  A.月份,B.计划启动数,B.计划完成数,C.实际启动数,D.实际完成数 from A

left join B on A.月份=B.月份

left join C on A.月份=C.月份

left join D on A.月份=D.月份

image.png

=============

就是下面这个格式

select

TO_CHAR(AA.MDATE,'YYYY-MM') 月份,

COUNT(TO_CHAR(AA.MDATE,'YYYY-MM')) 计划启动数,

'' as 计划完成数,

'' as 实际启动数,

'' as 实际完成数

FROM WR_OPC_INVESTMENT_MONTH_LOG AA

WHERE

BB......

image.png

  • 愤怒的老头 愤怒的老头(提问者) left join 不行,因为你不知道哪一段sql其中没有几月,就比如第一段就没有11月,left join之后其他三段应该都有11月,但实际没有
    2021-07-25 14:34 
  • snrtuemc snrtuemc 回复 愤怒的老头(提问者) 那就四个语句,都增加另外三个列,给空值,然后四个union在一起
    2021-07-25 14:40 
  • 愤怒的老头 愤怒的老头(提问者) 回复 snrtuemc 老实说;都增加另外三个列,给空值,这个没明白,union在一起到是动了了
    2021-07-25 14:47 
  • snrtuemc snrtuemc 回复 愤怒的老头(提问者) 看下修改答案格式,然后四个sql再union在一起
    2021-07-25 14:53 
最佳回答
0
xiaomiliLv6初级互助
发布于2021-7-25 14:33

union就好了啊

  • 愤怒的老头 愤怒的老头(提问者) union是一列吧
    2021-07-25 14:37 
  • xiaomili xiaomili 回复 愤怒的老头(提问者) 那你想怎么样的结果呢,也没看你描述出来啊;
    2021-07-25 14:41 
  • 愤怒的老头 愤怒的老头(提问者) 回复 xiaomili 列是:月份;计划启动数;计划完成数;实际启动数;实际完成数
    2021-07-25 14:46 
  • xiaomili xiaomili 回复 愤怒的老头(提问者) 而且你这个完全可以写成一个sql语句,然后用union并列起来;
    2021-07-25 14:48 
  • xiaomili xiaomili 回复 愤怒的老头(提问者) 可以的啊;
    2021-07-25 14:49 
  • 3关注人数
  • 339浏览人数
  • 最后回答于:2021-9-7 09:56
    请选择关闭问题的原因
    确定 取消
    返回顶部