这是我第一次询问有关T-SQL的问题,我是初学者。我有一个SQL查询,它由两个CTE组成,过滤到少于10行。我使用SUM语句来获得总计:
Sum(Diff) OVER(ORDER BY DateAdded) AS Summary
DateAdded
对于多行具有相同的值。因此,它不会给我每行的总计。我需要创建一个简单计算行数的字段(类似于DB表中的PK),因此我可以将它用于我的ORDER BY
子句。如果我的理解是正确的,那么我需要做的就是让它发挥作用。如何将枚举列添加到查询结果集?请注意,我不想ALTER
表,只需在查询结果中添加一列。我希望我写的很清楚。谢谢!
答案 0 :(得分:2)
您可以使用row_number(),而不是使用count()
或sum()
,它会为结果集中的每一行提供从1开始的不同行号:
SELECT ROW_NUMBER() OVER (ORDER BY dateAdded) as Summary
答案 1 :(得分:0)
试试这个:
DECLARE @Result TABLE
(
DT DATETIME
)
INSERT INTO @Result SELECT '1 Jan 1900'
INSERT INTO @Result SELECT '1 Jan 1900'
SELECT ROW_NUMBER() OVER(ORDER BY DT DESC) AS "Row Number", DT
FROM @Result
答案 2 :(得分:-1)
我相信您只需将NEWID()
添加到ORDER BY
:
SELECT SUM(diff) OVER (ORDER BY DateAdded, NEWID()) AS Summary