能不能只用一条sql语句就查询出不同时间段(一天,一周,一个月...)的相同字段的统计结果?

想做一个代理后台的充值金额统计表格,分别需要统计出一天内、一周内、一个月内用户充值的总额,但我不想分开用多条sql语句查询(因为查询速度的瓶颈主要在I/O那里)而想用一条就能查出想要的数据这种需求能否实现?

阅读 4.7k
2 个回答
select 
    sum(case when create_date>=date_sub(current_date(),interval 1 day) then amount else 0 end) day_amount,
    sum(case when create_date>=date_sub(current_date(),interval 7 day) then amount else 0 end) week_amount,
    sum(amount) month_amount
from table 
where create_date>=date_sub(current_date(),interval 30 day);

另外说一下,这种需求如果是要实时频繁计算的话,最好每天生成一条报表数据,每次拉取报表数据即可

新手上路,请多包涵

查出每天内的,程序不就可以二次处理算出周内和月内的充值总额了么

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题