Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 是否可以对特定用户oracle的每三行求和?使用计数函数或任何其他函数_Mysql_Oracle - Fatal编程技术网

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的行号,然后在外部查询该号码(