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, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value
持つ と どこ はどう違いますか
where
上のフィルターselect ... from
having
からの集計結果に対するフィルタgroup by ...
だから、あなたの例をもう一度見てください:
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
ここでWHERE column_name operator value
は、「'column_name operator value' が true である table_name の結果を返す」と述べています。
これらの条件からのすべての結果が見つかった後でのみ、column_name でグループ化されます。
次にHAVING aggregate_function(column_name) operator value
、「結果の集計グループについて、「aggregate_function(column_name)」を実行し、「aggregate_function(column_name) operator value」が true である結果のみを返します。