📅  最后修改于: 2023-12-03 15:18:38.274000             🧑  作者: Mango
在 PostgreSQL 中,GROUP BY
子句用于将结果集按照指定的列进行分组,并对每个组进行统计汇总。
GROUP BY
子句的基本语法如下:
SELECT column1, column2, ...
FROM table_name
WHERE condition
GROUP BY column1, column2, ...
ORDER BY column1, column2, ... [ASC|DESC];
其中,GROUP BY
子句紧跟在 WHERE
子句之后,用于指定需要分组的列。ORDER BY
子句则用于指定排序方式。
假设有一个 employees
表,包含员工姓名、所在部门和工资等信息。要求按照部门名称进行统计汇总,计算每个部门的员工人数和平均工资。
SELECT department, COUNT(*) AS count, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;
以上 SQL 语句将会返回如下结果:
department | count | avg_salary
------------+-------+----------------
Sales | 2 | 4000.0000000000
IT | 3 | 6000.0000000000
HR | 2 | 3500.0000000000
在使用 GROUP BY
子句时,需要注意以下事项:
GROUP BY
子句中指定的列必须出现在 SELECT
列表中。
SELECT
中出现的列可以包含统计函数(如 COUNT
、AVG
等)。
如果同时使用了 GROUP BY
和 ORDER BY
子句,则 ORDER BY
子句中的列必须包含在 GROUP BY
子句中。
如果在 GROUP BY
中使用了多个列,则结果集将按照指定的列依次排序。