sql - 必须分组才能聚合吗?

标签 sql sql-server tsql aggregate-functions

如果进行聚合(例如使用 SUM),是否要求您必须按选择中的某些内容进行分组?您必须有一个 group by 子句吗?

最佳答案

不,这不是必需的。

没有 GROUP BY 的聚合是标量聚合,并且始终只返回一行。

示例

SELECT SUM(high)
FROM master..spt_values
WHERE 1 = 0

带有 GROUP BY 的聚合是向量聚合,每组返回零行或一行。

示例

SELECT [type], SUM(high)
FROM master..spt_values
WHERE 1 = 0
GROUP BY [type]

关于sql - 必须分组才能聚合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11417503/

相关文章:

sql-server - 创建 SQL Server ODBC 数据源的最简单、最易于维护的方法是什么?

sql - 递归 CTE 未获得预期结果。如何仅分配 anchor ?

tsql - 避免 TSQL 数据转换错误

.net - 无法加载DLL 'SqlServerSpatial.dll'

c# - 如何从 C# 代码向存储过程参数添加 "N"前缀

sql-server - 如何创建列并将另一列复制到新创建的列中

sql - 使用 1 个带 3 个外键的联结表或 2 个共享排序的联结表?

MySQL返回用户排名最高的事件

SQL 组合多个 SELECT 结果

sql - WHERE col1,col2 IN (...) [使用复合主键的 SQL 子查询]