Mysql 是否可以对特定用户oracle的每三行求和?使用计数函数或任何其他函数
我的表名是Mysql 是否可以对特定用户oracle的每三行求和?使用计数函数或任何其他函数,mysql,oracle,Mysql,Oracle,我的表名是AGENTWISEMONTHLYREPORT,字段是USER\u IDMONTH\u YEAR和NO\u fou TICKETS USER_ID MONTH_YEAR NO_FO_TICKETS iciseva00031 201706 8 iciseva00031 201705 22 iciseva00031 201704 29 iciseva00031 201703 30 iciseva00031 201702 26 icise
AGENTWISEMONTHLYREPORT
,字段是USER\u ID
MONTH\u YEAR
和NO\u fou 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
这些总和(没有票)是每3行的总和。
有人能帮我吗。如果您所追求的是按季度(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
你能给我们看看预期的产量吗?还有,到目前为止,你有没有尝试过解决这个问题?为什么是mysql和oracle?你两者都需要吗?谢谢@Giorgos Betsos的重播我用预期输出@user7294900编辑了它任何一个都可以。通过给出的示例,你如何得到151和60?如果行数不是3的倍数,您将选择哪3行?您对季度(1-3月,4-6月,…)感兴趣吗?先生,我只想要最后四个季度,如何实现它。您可以使用
row\u number()over
获取每个用户id的行号,然后在外部查询该号码(