'Having' を 'Where' として (つまり、group by 句なしで) 使用した場合、'Where' と 'Having (as where)' のどちらが速いか教えてください。どちらを優先する必要がありますか?
シナリオ - この条件を使用して、緯度と経度を使用して特定の距離にある場所を見つけています。
aggregate
条件が関数を参照する場合は、その条件をHAVING
句に入れます。それ以外の場合は、WHERE
節を使用してください。
使用できますHAVING
が、 と一緒に使用することをお勧めしますGROUP BY
。
SQL Standard
WHERE
行を返す前に結果セットを制限HAVING
し、すべての行を取得した後に結果セットを制限します。速いWHERE
です。
HAVING
との違いは次のWHERE
とおり
です。 GROUP BY なしの HAVING
通常、代わりに使用することはできませんが、それについてはすべてこのリンクで説明されています
そして、ここにそれらの速度に関するトピックがあります:どちらの SQL ステートメントがより高速ですか? (HAVING と WHERE...)
HAVING と WHERE の使用は交換できません。それらはさまざまなトピックをカバーしています。GROUP BY 文がない場合、HAVING は WHERE と等しいように見えます。