gpt4 book ai didi

mysql - 列出mysql中所有员工及其监管的人数

转载 作者:行者123 更新时间:2023-11-29 19:28:09 25 4
gpt4 key购买 nike

我有一张员工表。每个员工都有一个员工 ID。有些员工有一个主管字段,可链接回其他员工的 ID。现有员工10人,其中主管2人,每人主管4人。我正在尝试获取所有员工的名单以及他们监督的其他员工的数量。到目前为止,我似乎只能让主管和他们监管的人数显示出来。这是我的查询:

SELECT s.employee_name, COUNT(*)
FROM employee e
join employee s on e.supervisor_id= s.employee_id
group by s.
order by s.employee_name;

我尝试将 JOIN 更改为 RIGHT JOIN,现在它会向我显示所有 10 名员工,其中两名主管显示他们管理着 4 名员工,但它显示了所有其他员工没有人监督,因为有 1 而不是 0。我确信这是我缺少的一些简单的东西。

示例数据:

employee_name, employee_name, supervisor_id,
'10111', 'Sydnee K. Stevens' NULL
'10870', 'Colton C. Rocha', '10111'
'11425', 'Astra V. Sharp','10111'
'12973', 'Melanie X. Rojas','10111'
'14451', 'Bethany Roman','10111'
'14597', 'Lydia Edwards', NULL
'16153', 'Selma Q. Conley', '14597'
'17730', 'Kristen B. Malone', '14597'
'17762', 'Barrett B. Bauer', '14597'
'18628', 'Shana Z. Flowers','14597'

最佳答案

我们使用选择来连接您的员工表,就像我们将其与真实表连接一样。该选择将包含所有supervisor_id以及supervisor_id字段中出现的次数(supervisor_id为空的记录将被忽略)。

SELECT e.employee_id, e.employee_name, s.supervising 
FROM employee e
LEFT JOIN (SELECT supervisor_id, count(*) as supervising
FROM employee
WHERE supervisor_id is NOT NULL
GROUP BY supervisor_id) AS s
ON(e.employee_id = s.supervisor_id)

关于mysql - 列出mysql中所有员工及其监管的人数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41990154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com