对总计重复的列值(没有其他列)进行总计

时间:2019-12-16 02:56:12

标签: sql sql-server sqlite tsql

我想运行总计,但是over子句中没有要使用的唯一列或id列。

CREATE TABLE piv2([name] varchar(5), [no] int);

INSERT INTO piv2
    ([name], [no])
VALUES
    ('a', 1),
    ('a', 2),
    ('a', 3),
    ('a', 4),
    ('b', 1),
    ('b', 2),
    ('b', 3);

只有2列,名称具有重复的值,而我想在SQL Server 2017中总计运行的编号为否。

预期结果:

a 1
a 3
a 6
a 10
b 11
b 13
b 16

有帮助吗?

1 个答案:

答案 0 :(得分:0)

以下查询将生成您期望的输出,至少是针对您确实向我们展示的示例数据:

SELECT
    name,
    SUM(no) OVER (ORDER BY name, no) AS no_sum
FROM piv2;

如果打算用于滚动总和的顺序不同于nameno列给出的顺序,那么您应该将该逻辑与样本数据一起显示。