【发布时间】:2020-02-12 01:40:00
【问题描述】:
所以,我对 Oracle 和 SQL 还是很陌生,我遇到了一个关于有和 max 子句的问题 - 我一直在尝试提取具有大多数正在处理它们的作业名称的项目,并按作业名称对它们进行分组. 我可以很好地访问数据,直到有子句,它不呈现任何行选择查询。我不知道我做错了什么。
SELECT PROJ_EMP.PROJNO, EMP.JOB, COUNT(EMP.JOB)
FROM EMP, PROJ_EMP
WHERE EMP.EMPNO = PROJ_EMP.EMPNO
GROUP BY PROJ_EMP.PROJNO, EMP.JOB
HAVING COUNT(EMP.JOB) =
(SELECT MAX(employees) FROM (SELECT COUNT(PROJ_EMP.PROJNO) AS employees FROM
EMP, PROJ_EMP WHERE EMP.EMPNO = PROJ_EMP.EMPNO GROUP BY EMP.JOB))
【问题讨论】:
-
样本数据和期望的结果会有所帮助。为什么不使用正确、明确、标准
JOIN语法? -
我的数据库中的表等数据示例?我应该在这里复制吗?所需的结果将是 EMP.JOB 的渲染,即“Manager”和 PROJ_EMP.PROJNO“6”,这将说明大多数 EMP.JOB =“Manager”的员工在 PROJ_EMP.PROJNO“6”上工作。至于为什么我对 JOIN 子句使用简化的语法——这就是我被教导的方式,我应该考虑切换到标准 JOIN 吗?
-
欢迎来到 Stack Overflow。请不要在 cmets 中留下重要信息。相反,请使用标签下方的
edit按钮来编辑您的问题。谢谢。
标签: sql oracle count max having