我的表名为AGENTWISEMONTHLYREPORT
,字段为USER_ID
MONTH_YEAR
和NO_FO_TICKETS
USER_ID MONTH_YEAR NO_FO_TICKETS
iciseva00031 201706 8
iciseva00031 201705 22
iciseva00031 201704 29
iciseva00031 201703 30
iciseva00031 201702 26
iciseva00031 201701 14
iciseva00031 201612 14
iciseva00031 201611 14
iciseva00031 201610 34
iciseva00031 201609 25
iciseva00031 201608 109
iciseva00031 201607 11
预计出局如下:
userid sum(no_of_tickets)
iciseva00031 151
iciseva00031 60
这些总和(no_of_tickets)是每3行的总和。 任何人都可以帮助我。
答案 0 :(得分:0)
如果您按照季度(3个月)进行分组,那么在Oracle SQL中您可以这样做:
select user_id,
floor(to_number(month_year)/100) year,
1 + floor((mod(to_number(month_year), 100) - 1) / 3) quarter,
sum(no_fo_tickets) sum_tickets
from mytable
group by user_id,
floor(to_number(month_year)/100),
1 + floor((mod(to_number(month_year), 100) - 1) / 3)
order by 1, 2 desc, 3 desc;
输出就像:
user_id | year | quarter | sum_tickets
-------------+------+---------+------------
iciseva00031 | 2017 | 2 | 59
iciseva00031 | 2017 | 1 | 70
iciseva00031 | 2016 | 4 | 62
... etc