联表根据共同字段分组sql统计数据

简单的连表统计某个ID出现的次数则sql类似:
select t2.*,( select count(t1.id) from cook_comment t1 where t1.goodsId=t2.id ) as commentNumber  from goods  t2 ;

涉及到多列需要作为查询分组的如下示例:sql联表查询根据共同字段group by分组统计数据并显示,

行数据:

select a.*, t.starttime, t.endtime
  from (select l.jobid,
               l.kddate,
               sum(l.count) updateTimes,
               sum(decode(l.status, 2, 1, 0)) failTimes,
               sum(l.cost) totalCost,
               sum(l.rowsize) updateSize
          from kdgs_realtime_log l
        -- where l.kddate = 20171017
        --   and l.jobId = 1000009
        --and l.status = 2
         group by l.jobid, l.kddate) a,
       kdgs_qrtz_trigger_info t
 where t.id = a.jobid

如果只需要查询某条ID对应的数据则需要把相关where注释打开。

汇总信息低效率的方式是不用group by而是逐一查询各数据再展示,如下

select * from kdgs_realtime_log t where t.jobid = 1000009;
select i.id,i.starttime,i.endtime,
(select sum(l.count) from kdgs_realtime_log l where l.jobid=i.id and l.kddate=20171018) as updateTimes,
(select count(1) from kdgs_realtime_log l where l.jobid=i.id and l.kddate=20171018 and l.status=2) as failTimes,
(select sum(l.cost) from kdgs_realtime_log l where l.jobid=i.id and l.kddate=20171018) as totalCost,
(select sum(l.rowsize) from kdgs_realtime_log l where l.jobid=i.id and l.kddate=20171018) as updateSize
 from kdgs_qrtz_trigger_info i where i.id=1000009;


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值