返回

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  |  
+------+-----------+

 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像