SQL中有vs Where子句

SQL中having子句和where子句的区别在于where子句不能 ot 可以与聚合一起使用,但having子句可以。

null

这个 哪里 子句作用于行的数据,而不是聚合数据。让我们考虑下表“损坏”。

学生课程成绩

C140

c250

b c3 60

d c1 70

e c2 80

考虑查询

SELECT Student, Score FROM Marks WHERE Score >=40

这将逐行选择数据。

这个 子句适用于聚合数据。

例如,以下查询的输出

SELECT Student, SUM (score) AS total FROM Marks GROUP BY Student

学生总数

90

b 60

d 70

e 80

当我们在上面的查询中应用having时,我们得到

SELECT Student, SUM (score) AS total FROM Marks GROUP BY Student

HAVING total > 70

学生总数

90

e 80

注意:这不是一个预定义的规则,但在很多SQL查询中,我们使用WHERE-prefore-groupby和have-after-groupby。Where子句充当 预滤器 作为一个 后过滤器。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写评论

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享