SQL:分别根据最近3个月和最近5个月的分组

时间:2019-02-26 18:09:47

标签: mysql sql

基于不同时间段的销售额表,我试图计算2个不同时间段的汇总值:(1)日期>'2018-11-26'的销售额和(2)日期> '2018-09-26'

create table revenue (sales float, date_time datetime) 
insert into revenue (sales,date_time) values (300, '2018-09-01')
insert into revenue (sales,date_time) values (200, '2018-10-01')
insert into revenue (sales,date_time) values (300, '2018-11-01')
insert into revenue (sales,date_time) values (400, '2019-01-01')
insert into revenue (sales,date_time) values (500, '2019-02-01')

我已经看到了在时间段内使用案例的其他解决方案,但是这种情况下的区别在于时间段不是互斥的。

我想要的查询应该像这样工作:

select sum(sales) from revenue
group by date_time where date_time > '2018-11-26',  
date_time where date_time > '2018-09-26'

1 个答案:

答案 0 :(得分:1)

您可以使用全部合并

select 'p1' as prd , sum(sales) from revenue
where date_time >= '2018-11-26'

union all
select 'p2', sum(sales) from revenue
where date_time > '2018-09-26' 

或者您可以使用case when

select case when date_time >= '2018-11-26' then 'p1'
              when date_time > '2018-09-26' 
              then 'p2' end as period, sum(sales) from revenue
              group by case when date_time >= '2018-11-26' then 'p1'
              when date_time > '2018-09-26' 
              then 'p2' end