📜  PostgreSQL Group BY子句(1)

📅  最后修改于: 2023-12-03 15:18:38.274000             🧑  作者: Mango

PostgreSQL Group BY 子句

在 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 中出现的列可以包含统计函数(如 COUNTAVG 等)。

  • 如果同时使用了 GROUP BYORDER BY 子句,则 ORDER BY 子句中的列必须包含在 GROUP BY 子句中。

  • 如果在 GROUP BY 中使用了多个列,则结果集将按照指定的列依次排序。