sql - 对重复的列值而不是其他列运行总计
问题描述
我想做总计,但在 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
有什么帮助吗?
解决方案
以下查询将生成您期望的输出,至少对于您向我们展示的确切样本数据而言:
SELECT
name,
SUM(no) OVER (ORDER BY name, no) AS no_sum
FROM piv2;
如果您打算用于滚动总和的顺序不是name
andno
列给出的顺序,那么您应该显示该逻辑以及示例数据。
推荐阅读
- asp.net - 在 .net framework 4.6.1 中完成的应用程序是否可以在 .net framework 4.5 中安全运行
- spotfire - Spotfire - 将数据源从 SQL 更改为 excel
- python - 如何在一列相同的熊猫数据框中执行两个聚合操作?
- parsing - 解决 Bison Parser 中的混乱优先级
- algorithm - 将任何一个数字减少到0的最佳方法
- oracle - 如何在 PLSQL 的函数中使用序列?
- javascript - 如何在 firefox 插件中使用 pdf.js 库?
- c# - Transactionscope 错误 此平台不支持分布式事务
- sqlite - 如何检查字符串是否包含数据库中的值?
- c# - 未找到支持的蓝牙协议栈