logo

MySQL の GROUP BY 句

MYSQL GROUP BY 句は、複数のレコードからデータを収集し、結果を 1 つ以上の列ごとにグループ化するために使用されます。通常、SELECT ステートメントで使用されます。

グループ化された列に対して COUNT、SUM、MIN、MAX、AVG などの集計関数を使用することもできます。

構文:

 SELECT expression1, expression2, ... expression_n, aggregate_function (expression) FROM tables [WHERE conditions] GROUP BY expression1, expression2, ... expression_n; 

パラメーター

式 1、式 2、...式_n: これは、集計関数内にカプセル化されていない式を指定し、GROUP BY 句に含める必要があります。

Pythonで

集計関数: SUM、COUNT、MIN、MAX、AVG などの関数を指定します。 tables: レコードを取得するテーブルを指定します。 FROM 句には少なくとも 1 つのテーブルがリストされている必要があります。

WHERE 条件: オプションです。レコードが選択されるために満たさなければならない条件を指定します。

(i) COUNT 関数を使用した MySQL GROUP BY 句

次のレコードを持つ「officers」テーブルという名前のテーブルがあるとします。

アンドロイドのイースターエッグ
MySQL のグループ化句 1

ここで、列住所内の繰り返しの都市の数を数えてみましょう。

次のクエリを実行します。

 SELECT address, COUNT(*) FROM officers GROUP BY address; 

出力:

MySQL のグループバイ句 2

(ii) SUM 関数を使用した MySQL GROUP BY 句

次のデータを含むテーブル「employees」テーブルを考えてみましょう。

文字列をint型に変換します
MySQL のグループバイ句 3

次のクエリは、SUM 関数を使用して例を GROUP BY し、各従業員の emp_name と合計労働時間を返します。

次のクエリを実行します。

 SELECT emp_name, SUM(working_hours) AS 'Total working hours' FROM employees GROUP BY emp_name; 

出力:

MySQL のグループバイ句 4

(iii) MIN 関数を使用した MySQL GROUP BY 句

次の例では、テーブル「employees」から従業員の最低労働時間を指定します。

次のクエリを実行します。

 SELECT emp_name, MIN(working_hours) AS 'Minimum working hour' FROM employees GROUP BY emp_name; 

出力:

MySQL のグループバイ句 5

(iv) MAX 関数を使用した MySQL GROUP BY 句

次の例では、テーブル「employees」から従業員の最大労働時間を指定します。

次のクエリを実行します。

 SELECT emp_name, MAX (working_hours) AS 'Minimum working hour' FROM employees GROUP BY emp_name; 

出力:

int から char Java へ
MySQL のグループ化 6 節

(v) AVG 関数を使用した MySQL GROUP BY 句

次の例では、テーブル「employees」から従業員の平均労働時間を指定します。

次のクエリを実行します。

 SELECT emp_name, AVG(working_hours) AS 'Average working hour' FROM employees GROUP BY emp_name; 

出力:

MySQL のグループ化 7 節