SELECT d.department_name, COUNT(e.employee_id) AS employee_count
FROM departments d
JOIN employees e ON d.department_id = e.department_id
GROUP BY d.department_id, d.department_name
ORDER BY employee_count DESC;
执行计划关键步骤解释:
- 连接类型:
- 使用
JOIN
操作将departments
表和employees
表连接起来。这里使用的是内连接(隐式内连接,在ON
条件中指定连接条件),确保只有在departments
表和employees
表中department_id
匹配的记录才会被包含在结果集中。
- 索引使用情况:
- 如果在
departments
表的department_id
字段和employees
表的department_id
字段上都有索引,数据库在执行连接操作时可以利用这些索引快速定位匹配的记录,从而提高连接效率。
- 对于
GROUP BY
子句,如果department_id
和department_name
字段上有索引,在分组操作时也可能利用这些索引来快速定位和分组数据。
- 聚合操作:
- 使用
COUNT(e.employee_id)
对每个部门的员工进行计数。这是一个聚合函数,它会对每个分组(由GROUP BY
定义)中的记录进行统计。
- 排序操作:
ORDER BY employee_count DESC
对聚合后的结果按照员工数量进行降序排列。如果employee_count
字段上有索引,排序操作可能会利用该索引来加速排序过程。