01-GROUP BY语句

starrylsi
2024-09-07 / 0 评论 / 12 阅读 / 正在检测是否收录...

目标

  • 理解GROUP BY语句

在 SQL 查询中,GROUP BY 子句通常遵循以下顺序:

FROM 子句:指定查询的数据源,即从哪个或哪些表中检索数据。

JOIN 子句(如果有):如果需要从多个表中检索数据,并且这些表之间存在关系,那么可以使用 JOIN 来连接这些表。JOIN 子句定义了如何将这些表的数据组合在一起。

WHERE 子句(如果有):用于过滤结果集,只包括满足特定条件的行。

GROUP BY 子句:在 FROM 和可能的 JOIN 子句之后使用,用于根据一个或多个列的值对结果集进行分组。每个组由具有相同列值的行组成。

HAVING 子句(如果有):用于对分组后的结果进行条件过滤。与 WHERE 子句不同,HAVING 子句可以引用聚合函数。

案例

#查询出公司各部门的人数 且部门人数比Pur部门人数多的部门编号、部门名字和人数
#思路1.查询出pur部门的人数 2.查询公司各部门的人数 3.比较

SELECT dept.department_id,dept.department_name,COUNT(employee_id) count_emp
FROM employees emp JOIN departments dept ON emp.department_id = dept.department_id
GROUP BY emp.department_id 
## ^
## |计算每一个部门的人数
HAVING count_emp >
(SELECT COUNT(employee_id) FROM employees e 
JOIN departments d ON e.`department_id` = d.`department_id`
WHERE d.`department_name` = 'Pur')
0

评论 (0)

取消