如果我使用'Have'作为'Where'(即没有group by子句), 你能告诉我哪一个更快“在哪里”或“拥有(如何)”? 我们更喜欢哪一个?
场景 - 我使用此条件使用纬度和经度查找特定距离的位置。
答案 0 :(得分:4)
如果条件引用aggregate
函数,请将该条件放在HAVING
子句中。否则,请使用WHERE
子句。
您可以使用HAVING
,但建议您使用GROUP BY
。
SQL Standard
表示WHERE
在返回行之前限制结果集,HAVING
在带来所有行之后限制结果集。所以WHERE
更快。
答案 1 :(得分:1)
以下是HAVING
和WHERE
之间的区别:
HAVING without GROUP BY
你不能一般地使用它,但是这个链接涵盖了它的全部内容
以下是关于他们速度的主题:Which SQL statement is faster? (HAVING vs. WHERE...)
答案 2 :(得分:0)
HAVING和WHERE的使用不可互换。它们涵盖了不同的主题,如果没有GROUP BY句子,HAVING似乎只等于WHERE