列总和超过()

时间:2018-01-24 14:14:20

标签: tsql

我基本上试图了解以下查询将返回的内容(最重要的是为什么):

 SELECT SUM(SUM(column)) OVER() FROM table

在实践中,它返回一行,其总和实际上是表的整个结果集中列的总和。我不明白为什么我们得到这个结果!

1 个答案:

答案 0 :(得分:1)

这些将返回相同的值。像这样把它们放在一起是多余的。最里面的SUM将对所有行值求和,因此最外层的SUM没有任何内容可以求和。您可以查看查询计划,您将看到其中一个聚合为空。

SELECT SUM(SUM(column)) OVER() FROM table

SELECT SUM(column) FROM table