具有聚合功能的SQL HAVING子句?

酷影

我试图找到公司员工的薪水高于所有员工的平均薪水。我想从一开始就指出,我不希望平均薪水出现在最终结果中,因此我在SELECT语句中忽略了它。这些是我尝试过的事情:

SELECT employee.lastname,employee.firstname,employee.salary FROM employee
GROUP BY employee.salary
HAVING employee.salary > avg(employee.salary);

这将导致结果表为空

但是,尽管有“ =”符号,但以下内容令人惊讶地返回了公司的所有员工。

SELECT employee.lastname,employee.firstname,employee.salary FROM employee
GROUP BY employee.salary
HAVING employee.salary = avg(employee.salary);

这将再次返回空表:

SELECT employee.lastname,employee.firstname,employee.salary FROM employee
WHERE (SELECT avg(employee.salary) FROM employee 
GROUP BY employee.salary
HAVING employee.salary > AVG(employee.salary));

因此,总结一下这篇文章,我将对有关正确使用HAVING和聚合函数的一些见解,以及有关摘要导致空表的原因的见解。

去世

当你GROUP BY employee.salary那么每个组的平均工资等于employee.salary,因为该组的所有工资都是平等的。
因此条件:

employee.salary > avg(employee.salary)

总是,FALSE并且您没有行,并且条件:

employee.salary = avg(employee.salary)

始终存在TRUE,结果是返回所有组。
获得所需内容的正确代码是:

SELECT employee.lastname, employee.firstname, employee.salary 
FROM employee
WHERE employee.salary > (SELECT avg(employee.salary) FROM employee);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Oracle中具有聚合的NOT HAVING(逆HAVING)子句

来自分类Dev

SQL,HAVING子句说明

来自分类Dev

具有having子句的sql问题

来自分类Dev

具有聚合函数MAX的Codeigniter Active Record HAVING子句

来自分类Dev

SQL查询的HAVING子句只能使用聚合函数吗?

来自分类Dev

无法在SQL中正确使用HAVING子句

来自分类Dev

没有HAVING子句的解决方案

来自分类Dev

SQL Server,具有子句,位置,聚合函数

来自分类Dev

如何正确使用带有COUNT列的SQL HAVING子句?

来自分类Dev

带有 HAVING 子句的 Sql COUNT 产生错误的结果

来自分类Dev

带有 Where/Having 子句的 SQL 查询案例

来自分类Dev

HAVING子句或选择列表,并且正在聚合的列是外部引用

来自分类Dev

在选择中具有不聚合的子句

来自分类Dev

SQL HAVING子句未返回我期望的结果

来自分类Dev

SQL 查询不使用此 HAVING 子句返回任何内容

来自分类Dev

无法删除带有GROUP BY和HAVING子句的语句

来自分类Dev

在带有 WHERE 子句的 UPDATE 中使用 HAVING

来自分类Dev

从具有多个HAVING子句的GROUP BY中选择MAX的COUNT个(我认为)

来自分类Dev

具有AND和OR(包含和不包含子句)的HAVING COUNT(DISTINCT)的MySQL查询

来自分类Dev

SQL具有子句的问题

来自分类Dev

在Oracle中的SQL查询中,带有HAVING子句的1和2是什么意思?

来自分类Dev

具有逻辑功能的GROUP BY子句

来自分类Dev

具有聚合功能的SQL更新查询

来自分类Dev

具有聚合功能的SQL更新查询

来自分类Dev

如果聚合分组包含非空值,则 HAVING 子句过滤空行 ONY

来自分类Dev

可以使用表列与使用 HAVING 子句的聚合函数的结果进行比较吗?

来自分类Dev

where子句中具有聚合的复杂查询

来自分类Dev

Django ORM-具有不同选择子句的分组聚合

来自分类Dev

DB2 SQL:如何“计数”一个having子句返回的记录数量

Related 相关文章

  1. 1

    Oracle中具有聚合的NOT HAVING(逆HAVING)子句

  2. 2

    SQL,HAVING子句说明

  3. 3

    具有having子句的sql问题

  4. 4

    具有聚合函数MAX的Codeigniter Active Record HAVING子句

  5. 5

    SQL查询的HAVING子句只能使用聚合函数吗?

  6. 6

    无法在SQL中正确使用HAVING子句

  7. 7

    没有HAVING子句的解决方案

  8. 8

    SQL Server,具有子句,位置,聚合函数

  9. 9

    如何正确使用带有COUNT列的SQL HAVING子句?

  10. 10

    带有 HAVING 子句的 Sql COUNT 产生错误的结果

  11. 11

    带有 Where/Having 子句的 SQL 查询案例

  12. 12

    HAVING子句或选择列表,并且正在聚合的列是外部引用

  13. 13

    在选择中具有不聚合的子句

  14. 14

    SQL HAVING子句未返回我期望的结果

  15. 15

    SQL 查询不使用此 HAVING 子句返回任何内容

  16. 16

    无法删除带有GROUP BY和HAVING子句的语句

  17. 17

    在带有 WHERE 子句的 UPDATE 中使用 HAVING

  18. 18

    从具有多个HAVING子句的GROUP BY中选择MAX的COUNT个(我认为)

  19. 19

    具有AND和OR(包含和不包含子句)的HAVING COUNT(DISTINCT)的MySQL查询

  20. 20

    SQL具有子句的问题

  21. 21

    在Oracle中的SQL查询中,带有HAVING子句的1和2是什么意思?

  22. 22

    具有逻辑功能的GROUP BY子句

  23. 23

    具有聚合功能的SQL更新查询

  24. 24

    具有聚合功能的SQL更新查询

  25. 25

    如果聚合分组包含非空值,则 HAVING 子句过滤空行 ONY

  26. 26

    可以使用表列与使用 HAVING 子句的聚合函数的结果进行比较吗?

  27. 27

    where子句中具有聚合的复杂查询

  28. 28

    Django ORM-具有不同选择子句的分组聚合

  29. 29

    DB2 SQL:如何“计数”一个having子句返回的记录数量

热门标签

归档