mysql - 我无法弄清楚这个查询

标签 mysql sql sql-server

我是 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

表格在这里 enter image description here

最佳答案

您应该在 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/

相关文章:

sql - 如何使用 SQL 进行递归连接以获取最低级别的数据

sql-server - 如何根据类型显示正确的 sum() 值

java - 从 jComboBox(Java 数据库)中选择时用记录填充 jTextField

php - php中删除表记录

android - 如何在 asynctask onPostExecute 上从服务器的 imageview 上显示图像?

SQL 子查询返回超过 1 个值

mysql - 我怎样才能用2个表进行这个MYSQL查询

mysql - SQL:有条件 SUM

查看中的 SQL 计数作为列

mysql - 如果特定列存在字段,如何更新