gpt4 book ai didi

mysql - 试图在子查询中获取行数

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:25 25 4
gpt4 key购买 nike

我有两张表,一张是departments,一张是employees。部门 ID 是 employees 表中的外键。员工表有一个名字和一个标志,说明此人是否兼职。我可以在一个部门中拥有零个或多个员工。我试图弄清楚一个部门至少有一名员工的所有部门的列表,如果它确实有至少一名员工,那么所有员工都是兼职的。我认为这必须是某种子查询才能得到它。到目前为止,这是我所拥有的:

SELECT dept.name
,dept.id
,employee.deptid
,count(employee.is_parttime)
FROM employee
,dept
WHERE dept.id = employee.deptid
AND employee.is_parttime = 1
GROUP BY employee.is_parttime

我非常感谢此时的任何帮助。

最佳答案

您必须在 HAVING 子句中加入(正确)表和按部门分组:

select d.name, d.id, count(e.id) total 
from dept d inner join employee e
on d.id = e.deptid
group by d.name, d.id
having total = sum(e.is_parttime)

inner join 仅返回至少有 1 名员工的部门。
is_parttime 列(我猜)是一个带有值 01 的标志,所以通过对它求和,结果是 < em>部门的兼职,这个数字与部门的员工总数相比较。

关于mysql - 试图在子查询中获取行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59511747/

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