如何解决我尝试使用 select min(select count()) 但它不起作用
我想要房间里有最少的 emp 但它不起作用
这是来源:
https://github.com/kamenrider1604/testSQL.git
非常感谢!!
解决方法
使用
SELECT COUNT(..) AS `count`,..
FROM ..
ORDER BY `count` ASC LIMIT 1
,
我认为这对你有用
SELECT departments.dep_id,dep_name,dep_address,dep_phone,COUNT(employee.dep_id)
FROM employees,departments
WHERE employees.dep_id = departments.dep_id
GROUP BY employee.dep_id
HAVING COUNT(employee.dep_id) = (SELECT MIN(min_dep.min)
FROM (SELECT COUNT(employees.dep_id)
FROM employees
GROUP BY employees.dep_id) AS min_dep)
;
,
SELECT MIN(SELECT COUNT(dep_id) FROM employees GROUP BY dep_id) FROM employees
这个子查询不正确。 您不能从员工中选择 min()。如果要查找 min('count'),则需要从子查询中进行选择:
SELECT MIN (count) FROM (SELECT COUNT (dep_id) AS count FROM employees GROUP BY dep_id)
*如果子查询中只有表名,则不必在其中指定表名。
你的问题在这里没有真正的帮助。因为还有其他更简单的方法可以实现您在问题中提出的问题,例如 @Akina 的答案,但是,通过查看您的代码,您似乎正在尝试完成一些不同的事情。如果以上不是您想要做的,那么我只能想到另一件事:
SELECT *
FROM (SELECT a.*,MIN (dep_count) OVER () dep_count_min
FROM (SELECT departments.dep_id,COUNT (employee.dep_id)
OVER (PARTITION BY employee.dep_id)
AS dep_count
FROM employees,departments
WHERE employees.dep_id = departments.dep_id) a) b
WHERE a.dep_count = b.dep_count_min
*我还没有在MySql上工作,所以以上所有内容都在Oracle中实现了。我认为基本SQL不会有太大区别,但是如果有任何问题,您可以尝试编写上述查询的MySql版本。 希望对你有帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。