在SQL Server中按顺序分组

阿米尔·阿博哈萨尼(Amir Abolhasani)

对于此表:

+----+--------+-------+
| ID | Status | Value |
+----+--------+-------+
|  1 |      1 |     4 |
|  2 |      1 |     7 |
|  3 |      1 |     9 |
|  4 |      2 |     1 |
|  5 |      2 |     7 |
|  6 |      1 |     8 |
|  7 |      1 |     9 |
|  8 |      2 |     1 |
|  9 |      0 |     4 |
| 10 |      0 |     3 |
| 11 |      0 |     8 |
| 12 |      1 |     9 |
| 13 |      3 |     1 |
+----+--------+-------+

我需要将相同的顺序组相加Status才能产生此结果。

+--------+------------+
| Status | Sum(Value) |
+--------+------------+
|      1 |         20 |
|      2 |          8 |
|      1 |         17 |
|      2 |          1 |
|      0 |         15 |
|      1 |          9 |
|      3 |          1 |
+--------+------------+

如何在SQL Server中做到这一点?

注意:该ID列中的值是连续的。

马丁·史密斯

根据我在您的问题中添加的标签,这是一个空白问题。

最好的解决方案可能是

WITH T
     AS (SELECT *,
                ID - ROW_NUMBER() OVER (PARTITION BY [STATUS] ORDER BY [ID]) AS Grp
         FROM   YourTable)
SELECT [STATUS],
       SUM([VALUE]) AS [SUM(VALUE)]
FROM   T
GROUP  BY [STATUS],
          Grp
ORDER  BY MIN(ID)

如果ID值不能保证如所述连续,那么您将需要使用

ROW_NUMBER() OVER (ORDER BY [ID]) - 
       ROW_NUMBER() OVER (PARTITION BY [STATUS] ORDER BY [ID]) AS Grp

而是在CTE定义中。

SQL小提琴

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SQL Server中按顺序分组

来自分类Dev

在SQL Server中按子查询分组

来自分类Dev

在SQL Server中按子查询分组

来自分类Dev

在SQL Server中按count()子句分组

来自分类Dev

在SQL Server中按范围分组

来自分类Dev

SQL连接:按顺序分组

来自分类Dev

在SQL中按&分组

来自分类Dev

从SQL Server中的多个表中按顺序获取行

来自分类Dev

在 SQL Server 中按顺序选择中的逗号分隔值

来自分类Dev

按顺序对记录进行分组(SQL)

来自分类Dev

SQL Server按位置分组

来自分类Dev

按范围SQL Server分组

来自分类Dev

SQL Server:按连续分组

来自分类Dev

在SQL Server中按varbinary(MAX)或varchar(MAX)分组

来自分类Dev

在SQL Server中按问题分组,从MySQL迁移

来自分类Dev

在SQL Server中按季度分组yearmonth字段

来自分类Dev

在SQL Server中按查询分组返回重复项

来自分类Dev

在SQL Server中按varbinary(MAX)或varchar(MAX)分组

来自分类Dev

如何在SQL Server中按多列分组

来自分类Dev

如何在SQL SERVER中按名称对总计分组

来自分类Dev

SQL Server 2012中按子句分组的更改列映射

来自分类Dev

获取按 SQL Server 中不同字段分组的总和

来自分类Dev

按日期列报告顺序降序在SQL Server中?

来自分类Dev

SQL Server查询,按列中的大数字顺序

来自分类Dev

按日期列报告顺序降序在SQL Server中?

来自分类Dev

在SQL中按逗号分组

来自分类Dev

在SQL查询中按分组

来自分类Dev

在 SQL 中按周分组

来自分类Dev

SQL Server:按范围分组日期