我有一个查询
Select PRODUCT_NAME, MIN(DATE_A), MAX(DATE_A), SUM(UNITS) FROM TABLES GROUP BY PRODUCT_NAME
结果
PENCILS 1/1/2015 3/15/2015 454
PENS 2/1/2015 3/15/2015 754
我想将查询分类为铅笔的结果
0-30 days total units - 201
31-60 days total units - 202
61-90 days total units - 51
结果可能采用以下格式
PRODUCT DATE_FROM DATE_TO 30 days 60 days 90 days
PENCILS 1/1/2015 3/15/2015 201 202 51
PENS 2/1/2015 3/15/2015 401 352 0
答案 0 :(得分:1)
查询:
with dates as (
select product_name, min(date_a) date_from, max(date_a) date_to
from tables group by product_name)
select product_name, date_from, date_to,
sum(case when date_from + 0 <= date_a and date_a < date_from + 30
then units else 0 end) d30,
sum(case when date_from + 30 <= date_a and date_a < date_from + 60
then units else 0 end) d60,
sum(case when date_from + 60 <= date_a and date_a < date_from + 90
then units else 0 end) d90
from tables t join dates d using (product_name)
group by product_name, date_from, date_to order by product_name
如果您想要更多时段,请添加下一栏。