是否有可能对特定用户oracle的每三行求和?具有计数功能或任何其他功能

时间:2017-06-22 05:54:36

标签: mysql oracle

我的表名为AGENTWISEMONTHLYREPORT,字段为USER_ID MONTH_YEARNO_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行的总和。  任何人都可以帮助我。

1 个答案:

答案 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