簡體   English   中英

如何用SQL總結分組結果的總和?

[英]How to sum up the sums of grouped results with SQL?

我是 SQL 新手,不知道如何解決我的問題。 我有一列名稱 [name])、一列我想總結的整數值 ([Values]) 和另一列整數值 ([Day])。 我想總結每天按名稱分組的值。 因此,例如,如果在第 1 天有一個值為 4 的名稱“Chris”,並且在第 3 天有另一個值為 2 的條目“Chris”,我想顯示第 1 (4) 天和第 2 天的 Chris 總和(4+2=6)。

到目前為止,我只計算了總計值的總和(參見下面的代碼)。

select Name,
Sum(Values) AS SumValues 
from X1
Group by Name;

但正如上面的例子(“克里斯”),我想總結一下,顯示每天每個名字的總和(從第 1 天到第 x 天的總和)。

使用 sum() 窗口函數:

select name, day,
  sum(value) over (partition by name order by day) total
from tablename 

對於此表:

create table tablename(name varchar(10), day int, value int);
insert into tablename(name, day, value) values
('Chris', 1, 2), ('Chris', 2, 4), ('Chris', 3, 8), 
('Alice', 1, 5), ('Alice', 2, 10), ('Alice', 3, 20);

結果是:

> name  | day | total
> :---- | --: | ----:
> Alice |   1 |     5
> Alice |   2 |    15
> Alice |   3 |    35
> Chris |   1 |     2
> Chris |   2 |     6
> Chris |   3 |    14

請參閱演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM