【发布时间】:2021-10-27 08:56:49
【问题描述】:
我有一个包含以下两个表的架构
1.人 -
+-------+----------------+------------+-----------------+-----------------+
| ID | NAME | DOJ | PREV_COMPANY_ID | CURR_COMPANY_ID |
+-------+----------------+------------+-----------------+-----------------+
| 1795f | ALEX BROWN | 1973-03-02 | 4e5b | 123a |
| 8772 | Chris Mitchell | 2016-06-15 | 4746 | 4e5b |
| 5e03 | Patt Hobbs | 1976-09-14 | 4e5b | 123b |
+-------+----------------+------------+-----------------+-----------------+
2。公司 -
+-------+---------------+
| ID | NAME |
+-------+---------------+
| 4746 | Mora-Sullivan |
| 49de6 | Harmon-Miller |
| 4e5b | Fakesmith |
+-------+---------------+
我想编写查询以找到以下内容-
- 首先确定员工人数最多的公司,然后显示其在前公司的员工。
我找到了使用 sql 查询的员工人数最多的公司。即这里的Fakesmith。
SELECT PREV_COMPANY_ID, COUNT(*) as count
FROM PEOPLE
GROUP BY PREV_COMPANY_ID
ORDER BY count DESC;
但我无法建立任何逻辑来找到使用以前公司名称的员工人数最多的当前雇主。我该如何解决这个问题?
【问题讨论】:
-
你如何确定“员工人数最多的公司/公司”,如果是一个最大值,你只想要那个,如果最大值是两条记录,你只想要这个两条记录?
-
我只想要一个最大值记录,因为这里的测试用例只能有一个值记录。
-
@AlexandreLéonard 不,它应该是 PREV_COMPANY_ID,因为我们想从 prev_company_id 确定最多的员工数量,然后检查在该公司工作的员工的 curr_company_id,然后使用 previous_company 显示他们的姓名。此外,您的查询返回错误代码 1241 操作数应包含 1 列