SELECT column1, column2, ..., aggregate_function(column)
FROM table_name
GROUP BY column1, column2, ...;
其中:
- column1, column2, ... 是要分组的列。
- aggregate_function(column) 是应用于每个组的聚合函数。
以下是一些使用 GROUP BY 子句的示例:
1. 单列分组:
SELECT department, COUNT(*)
FROM employees
GROUP BY department;
在这个例子中,将员工按部门分组,并计算每个部门的员工数量。
2. 多列分组:
SELECT department, gender, AVG(salary)
FROM employees
GROUP BY department, gender;
在这个例子中,将员工按部门和性别分组,并计算每个组的平均工资。
3. 使用表达式分组:
SELECT EXTRACT(YEAR FROM order_date) AS order_year, COUNT(*)
FROM orders
GROUP BY order_year;
在这个例子中,将订单按年份分组,并计算每个年份的订单数量。使用 EXTRACT 函数从日期中提取年份。
4. 结合 HAVING 子句:
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 60000;
在这个例子中,将员工按部门分组,并计算每个部门的平均工资。然后,使用 HAVING 子句筛选出平均工资大于 60000 的部门。
GROUP BY 子句通常与聚合函数一起使用,用于执行按组计算的操作。
转载请注明出处:http://www.zyzy.cn/article/detail/14136/PostgreSQL