WHEREキーワードを集計関数で使用できなかったため、SQLにHAVING句が追加されました。
詳細については、このw3schoolsリンクを確認してください。
構文:
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value
次のようなクエリ:
SELECT column_name, COUNT( column_name ) AS column_name_tally
FROM table_name
WHERE column_name < 3
GROUP
BY column_name
HAVING COUNT( column_name ) >= 3;
...次のように、派生テーブルを使用して(およびを省略してHAVING
)書き換えることができます。
SELECT column_name, column_name_tally
FROM (
SELECT column_name, COUNT(column_name) AS column_name_tally
FROM table_name
WHERE column_name < 3
GROUP
BY column_name
) pointless_range_variable_required_here
WHERE column_name_tally >= 3;
HAVING
は、それがポスト集約フィルターであるのに対してWHERE
、プレ集約フィルターであるということです。