答案 0 :(得分:1)
使用
SELECT COUNT(..) AS `count`, ..
FROM ..
ORDER BY `count` ASC LIMIT 1
答案 1 :(得分:0)
我认为这对你有用
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)
;
答案 2 :(得分:0)
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,
dep_name,
dep_address,
dep_phone,
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版本。 希望对你有帮助。