Mic*_*l A 27 sql t-sql sql-server sql-server-2005 sql-server-2008
为什么在SQL Server中我不能这样做:
select sum(count(id)) as 'count'
from table
Run Code Online (Sandbox Code Playgroud)
但我能做到
select sum(x.count)
from
(
select count(id) as 'count'
from table
) x
Run Code Online (Sandbox Code Playgroud)
它们本质上不是一回事吗?为了理解为什么不允许第一块代码,为什么我要考虑这个?
nvo*_*gel 14
您的示例中的SUM()是无操作 - COUNT()的SUM()意味着与COUNT()相同.因此,您的示例查询似乎都没有做任何有用的事情.
在我看来,嵌套聚合只有在你想要应用两个不同的聚合时才有意义 - 这意味着GROUP BY在不同的列集上.要指定两个不同的聚合,您需要使用GROUPING SETS功能或SUM()OVER功能.也许如果你解释你想要实现的目标,有人可以告诉你如何.
归档时间: |
|
查看次数: |
48798 次 |
最近记录: |