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?的主要内容,如果未能解决你的问题,请参考以下文章

在 sqlplus 程序中打印调试消息

登录 sqlplus 为啥总是打印用户名?

结果不打印 Python - SQlplus

使用 sqlplus 打印错误

Sqlplus 两次打印结果并使用空行

SQLPLUS 不打印受影响的行数