MySQLでのGROUP BY句の使い方は何ですか?
MySQLのGROUP BY文は、指定された列に基づいて検索結果をグループ化します。通常、SUM、COUNT、AVGなどの集計関数と一緒に使用され、各グループのデータを計算や集計するために利用されます。
GROUP BY文の基本的な構文は以下の通りです:
SELECT column1, column2, ..., aggregate_function(column_name)
FROM table
WHERE conditions
GROUP BY column1, column2, ...
column1やcolumn2などは、検索する列の名前です。aggregate_functionは集計関数です。tableはテーブルの名前で、conditionsは検索条件です。
GROUP BY句の実行プロセスは以下のようになります。
- GROUP BY句に指定された列に基づいて、クエリの結果を複数のグループに分割します。
- 各グループごとに演算または集計操作を行い、特定の列に対して集約関数を使用して合計、カウント、平均値などを計算します。
- 各グループの計算結果をクエリ結果として返す。
GROUP BY句の使用シーンには、次のものが含まれます:
- 各カテゴリーごとの数量や平均値などを集計します。
- 各地域の売り上げや利益などを調査してください。
- 日付、年、月別でデータをグループ化して集計します。
GROUP BY文を使用する場合、集約関数も同時に使用する必要があります。それ以外の場合、エラーが発生します。また、SELECT文の列がGROUP BY文に含まれない場合、それらは集約関数の引数である必要があります。
例えば、ordersという名前のテーブルがあり、注文情報が含まれているとします。お客様ごとの注文数量を集計するには、次のようなGROUP BY文を使用できます:
SELECT customer_id, COUNT(*) as order_count
FROM orders
GROUP BY customer_id;
各顧客のIDと注文数量を返すようになります。