sql-MySQL-显示大多数公司所在位置的所有员工和公司名称
发布时间:2022-08-29 03:45:36 248
相关标签: # 数据库
最近我在测试中收到了这个问题,即使在测试完成后我自己尝试后也无法找到解决方案。
我有 3 个表:
PEOPLE
+----+-------+----------+
| ID | NAME |COMPANY_ID|
+------------+----------+
| 1 |George | C1 |
| 2 | Jim | C2 |
| 3 | John | C3 |
+----+-------+----------+
COMPANY
+----------------+-----------+
| ID | NAME |LOCATION_ID|
+----------------+-----------+
| C1 |Water-Based| L1 |
| C2 |Gas-Giant | L1 |
| C3 |Fire-Proof | L2 |
+----+-----------+-----------+
LOCATION
+----+-----------+
| ID | COMPANY_ID|
+----+-----------+
| L1 | C1 |
| L1 | C2 |
| L2 | C3 |
+----+-----------+
目标是确定哪个地点的公司最多,然后显示该地点公司的员工姓名以及他们工作的地点。
我曾尝试过做一个子查询,在子查询中,我计算某个位置在公司表中出现的次数,然后显示在那里工作的人员以及公司,但我似乎无法正确执行,这是我的代码:
SELECT PEOPLE.NAME AS EMPLOYEE, t.NAME AS COMPANY
FROM(SELECT *,COUNT(LOCATION_ID) OVER(PARTITION BY LOCATION_ID) AS LCOUNT FROM COMPANY) AS t
JOIN PEOPLE
ON PEOPLE.COMPANY_ID = t.ID;
预期结果:
+------+-----------+
| NAME | COMPANY |
+------------------+
|George|Water-Based|
|Jim |Gas-Giant |
+------+-----------+
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报