我曾多次听说当我们使用聚合函数时,在某些查询中使用HAVING或GROUP BY是一种很好的做法(几乎必须有)。有人能解释一下吗? 据我所知,这将有助于我们总结或结果,但那里的表现有什么大不同?在查询中我们是否必须有HAVING或GROUP BY才能在某些列中搜索具有MAX函数的行?
答案 0 :(得分:2)
我认为在这种情况下阅读文档可能非常有用
- 如果在不包含GROUP BY子句的语句中使用组函数,则它等同于对所有行进行分组。
如果您不使用GROUP BY
,则表示不使用任何聚合函数。所以它实际上是必须做的而不是qn选项。
了解详情here
答案 1 :(得分:0)
假设你有一张桌子
'name' | 'sex'
'jeff' | 'M'
'jen' | 'F'
'mike' | 'M'
SELECT sex, count(*) FROM myTable GROUP BY sex
这将返回
'M', 2
'F', 1
基本上,您需要GROUP BY语句,因为您需要告诉数据库如何聚合结果集(即收集类似的行)。