SQLPlus 如何打印 COUNT(*) 的 MAX?
Posted
技术标签:
【中文标题】SQLPlus 如何打印 COUNT(*) 的 MAX?【英文标题】:SQLPlus How to print the MAX of COUNT(*)? 【发布时间】:2014-10-08 16:15:04 【问题描述】:我需要帮助打印员工人数最多的部门。由于 MAX(COUNT(*)) 实际上不起作用,任何人都可以帮助我吗?
假设我有两个名为 dept 和 emp 的表,每个表分别有 deptno 和 empdeptno。 我有这个来计算每个部门的每个员工:
SELECT dept.deptname "Department",
(SELECT COUNT(*)
FROM emp
WHERE emp.empdeptno = dept.deptno) "Number of Employees"
FROM dept
ORDER BY COUNT(*) DESC;
如何在不使用 LIMIT 和 ORDER BY 的情况下打印员工人数最多的部门?
【问题讨论】:
为什么max(count(*))
不起作用?这是有效的,有合适的分组吗?
你试过 ORDER BY "Number of Employees" DESC 吗?
只是一个提示:如果您向我们提供确切的错误,您可以帮助我们帮助您。在您的情况下,这可能类似于“ORDER 中的未知列 'COUNT()'”或者只是您获得值 X,但这不是您所期望的 :-)
如果答案有帮助,您可能会接受。这也将帮助有相同问题的人找到已回答的问题(您的问题),以及寻找待回答的未解决问题的人。
【参考方案1】:
SELECT dept.deptname "Department", COUNT(emp.empdeptno) AS "Number of Employees"
FROM dept
LEFT JOIN emp ON dept.deptno = emp.empdeptno
GROUP BY dept.deptname
ORDER BY COUNT(emp.empdeptno) DESC
如果 dept.deptname 不是关键并且可能会重复,您可以考虑GROUP BY dept.UniqueDepartmentKey, dept.deptname
。
您可能需要引用别名:GROUP BY "Department"
,具体取决于您的 SQL 风格。
【讨论】:
以上是关于SQLPlus 如何打印 COUNT(*) 的 MAX?的主要内容,如果未能解决你的问题,请参考以下文章