求每天为主表汇总数据的需求

朋友接了个需求:
一张表 有 date num 两个字段 数据量挺大, date字段不是连续的(比如2010-01-01,2010-01-03)然后需要按照date 分组,2010-01-02 没有的话查出的结果也要有它 只是对应num 要是零

A:date_table 2020-01-01 2020-01-02 2020-01-03
select t.date, sum( ifnull(t1.num,0))
from date_table t
left join ni_table t1 on date_format(date,’%Y-%M-%d’) = t.date
group by t.date

你建一个日期表,以日期为主表,进行查询。

oracle中,查询每天日期的sql

select date'2017-04-25' + (rownum - 1) dt from dual connect by rownum <= (date'2017-05-05' - date'2017-04-25' + 1)

mysql中,查询每天日期的sql

SELECT @cdate := DATE_ADD(@cdate,INTERVAL - 1 DAY) `date` 
FROM (SELECT @cdate :=DATE_ADD('2020-06-29', INTERVAL + 1 DAY) FROM t_request_transfer_total) t1 
WHERE @cdate > '2020-06-01'

如果其实日期终止日期不确定,可以使用明细表的max min 日期做条件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值