gpt4 book ai didi

sql - 累计计数

转载 作者:行者123 更新时间:2023-12-01 22:36:42 25 4
gpt4 key购买 nike

我想知道一个计数的累加和是否可能。我想举的一个例子是今年影响美国的 Storm 。我想要一个列出 2014 年月份的结果集,以及直到那个月影响美国的 Storm 的累计总和。我希望得到 3 列的内容 - Month、NumberofStorms 和 CumulativeSum,如下所示:

Month        NumberofStorms     CumulativeSum
-----------------------------------------------
Jan 2 2
Feb 1 3
Mar 1 4
Apr 0 4
May 0 4
Jun 0 4
Jul 0 4
Aug 0 4
Sep 1 5
Oct 3 8
Nov 5 13
Dec 8 21

我怎样才能做到这一点?

最佳答案

您可以向 SUM() 添加一个窗口:

SELECT "Month"
,"NumberofStorms"
,SUM("NumberofStorms") OVER(ORDER BY "Month" ROWS BETWEEN unbounded preceding and current row) AS CumulativeSum
FROM Table1

演示:SQL Fiddle

注意:在演示中月份是按字母顺序排序的,因为它只是一个示例场景,所以没有输入实际日期。

更新:让我们假设基表只是 MonthStormName,您需要一个 cte/子查询来首先获得一个计数,然后您可以在以上总计:

SELECT "Month"
,"NumberofStorms"
,SUM("NumberofStorms") OVER(ORDER BY "Month" ROWS BETWEEN unbounded preceding and current row) AS CumulativeSum
FROM (SELECT "Month",COUNT("Name") AS "NumberofStorms"
FROM Weather
GROUP BY "Month"
) AS Sub

关于sql - 累计计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22108767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com