我是 SQL 初学者。我正在尝试编写一个查询,“如果总工资大于 300,000,则提供每个部门所有人提取的总工资”。 我已经写了一些,但无法完全理解。
USE EMP_DB_01;
SELECT DEPTNAME, SUM(SALARY) AS 'Total Salary'
FROM DEPT, EMP
WHERE (SALARY > 300000) AND (DEPT.DEPTNO = EMP.DEPTNO)
GROUP BY DEPTNAME
最佳答案
您应该在 DEPT 和 EMP 之间使用联接,可以基于 DEPT.DEPTNO = EMP.DEPTNO ..并且对于总工资大于 300,000 的情况,您应该使用having 而不是 where
过滤聚合结果的结果..过滤行值
当总和 > 300.00 时,这将返回部门和相关的总工资
USE EMP_DB_01;
SELECT DEPTNAME, SUM(SALARY) AS 'Total Salary'
FROM DEPT
INNER JOIN EMP ON DEPT.DEPTNO = EMP.DEPTNO
HAVING SUM(SALARY) > 300000
GROUP BY DEPTNAME
关于mysql - 我无法弄清楚这个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42752321/