Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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/5/ember.js/4.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
在SQL中计算滚动月总和_Sql_Oracle - Fatal编程技术网

在SQL中计算滚动月总和

在SQL中计算滚动月总和,sql,oracle,Sql,Oracle,我有数据表明添加新客户的日期。同时,也有一些客户可能已经失踪的例子。例如: 客户号 添加日期 遗失日期 1. 01-5-20 无效的 2. 01-5-20 20年8月1日 3. 20年7月1日 无效的 4. 20年8月1日 无效的 5. 01-5-20 无效的 6. 01-JUN-20 无效的 7. 01-JUN-20 无效的 8. 01-5-20 无效的 您可以将聚合与窗口函数一起使用: select trunc(date_added, 'MON'), count(*) as cnt_in_m

我有数据表明添加新客户的日期。同时,也有一些客户可能已经失踪的例子。例如:

客户号 添加日期 遗失日期 1. 01-5-20 无效的 2. 01-5-20 20年8月1日 3. 20年7月1日 无效的 4. 20年8月1日 无效的 5. 01-5-20 无效的 6. 01-JUN-20 无效的 7. 01-JUN-20 无效的 8. 01-5-20 无效的
您可以将聚合与窗口函数一起使用:

select trunc(date_added, 'MON'), count(*) as cnt_in_month,
       sum(count(*)) over (order by trunc(date_added, 'MON')) as running_cnt
from t
group by trunc(date_added, 'MON');

注意:这会将日期截断为月份,因此包含年份。作为一般规则,您希望在使用月份时包括年份。

它类似于

SELECT
  DATE_ADDED,
  SUM(COUNT(*)) OVER(ORDER BY DATE_ADDED)
FROM T
GROUP BY DATE_ADDED
如果你的日期不总是一个月的第一天,那么使用TRUNC(DATE_加上'MM')

将窗口功能与分组混合使用时,首先完成分组。。这意味着查询组和计数将对分组的计数执行求和窗口功能。。当使用求和覆盖时,默认行为是按照指定的顺序对数据执行滚动求和。windowspec是OVER(在无界的前一行和当前行之间按x行排序)的缩写,它的意思是“在每一行上,将前面的所有行加起来,回到分区的开头”,这有效地实现了滚动和