GROUP BY 分组查询与聚合函数

GROUP BY 分组查询与聚合函数

分组后,SELECT 列表中只能出现 分组字段​ 或 聚合函数,如果引用了既不在 GROUP BY 中也没有被聚合函数包裹的字段,就会报错:

消息 8120,级别 16,状态 1,第 1 行
选择列表中的列 'Test.dbo.student.stu_id' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。Code language: JavaScript (javascript)

参考文档:聚合函数 (Transact-SQL) – SQL Server

聚合函数对一组值执行计算并返回单个值。除 COUNT(*) 外,聚合函数都会忽略 NULL 值。聚合函数常与 GROUP BY 子句一起使用。

使用聚合函数配合分组

SELECT stu_gender, stu_age, MAX(stu_name), MIN(stu_name), COUNT(1)
FROM [Test].[dbo].[student] s
GROUP BY stu_gender, stu_age
GOCode language: CSS (css)

可以使用 MAX() 或 MIN() 来获取一个组里其他字段的最大或最小值。比如下面有两个同名的人,可以取其中一人的添加时间作为代表:

SELECT name, MAX(cjsj) AS cjsj
FROM person
GROUP BY nameCode language: PHP (php)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注