![](/img/trans.png)
[英]How to sum up the sums of grouped results with SQL by NOT altering the structure?
[英]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.