数据库company中有如下两张表,表offices
网站编辑2023-05-08 16:21:56208
和employees,它们之间的关系是一对多,即一个办公室可以有多个员工,但一个员工只能属于一个办公室。请你编写一条 SQL 查询语句,查询每个办公室的编号、名称以及员工数量,并按照员工数量从多到少进行排序。

# 查询语句
SELECT o.officeNumber, o.city, COUNT(e.employeeNumber) AS employeeCount
FROM offices o
LEFT JOIN employees e ON o.officeCode = e.officeCode
GROUP BY o.officeNumber, o.city
ORDER BY employeeCount DESC;
首先,我们使用 LEFT JOIN 将 offices 表和 employees 表连接起来,以便查询每个办公室的员工数量。LEFT JOIN 保证了即使某个办公室没有员工,也会被包含在结果中。
然后,我们使用 COUNT 函数计算每个办公室的员工数量,并将其命名为 employeeCount。
接着,我们使用 GROUP BY 子句将结果按照办公室编号和城市进行分组,以便对每个办公室进行聚合计算。
最后,我们使用 ORDER BY 子句将结果按照员工数量从多到少进行排序,以便让员工数量最多的办公室排在前面。







