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」テーブルという名前のテーブルがあるとします。
アンドロイドのイースターエッグ
ここで、列住所内の繰り返しの都市の数を数えてみましょう。
次のクエリを実行します。
SELECT address, COUNT(*) FROM officers GROUP BY address;
出力:
(ii) SUM 関数を使用した MySQL GROUP BY 句
次のデータを含むテーブル「employees」テーブルを考えてみましょう。
文字列をint型に変換します
次のクエリは、SUM 関数を使用して例を GROUP BY し、各従業員の emp_name と合計労働時間を返します。
次のクエリを実行します。
SELECT emp_name, SUM(working_hours) AS 'Total working hours' FROM employees GROUP BY emp_name;
出力:
(iii) MIN 関数を使用した MySQL GROUP BY 句
次の例では、テーブル「employees」から従業員の最低労働時間を指定します。
次のクエリを実行します。
SELECT emp_name, MIN(working_hours) AS 'Minimum working hour' FROM employees GROUP BY emp_name;
出力:
(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 へ
(v) AVG 関数を使用した MySQL GROUP BY 句
次の例では、テーブル「employees」から従業員の平均労働時間を指定します。次のクエリを実行します。
SELECT emp_name, AVG(working_hours) AS 'Average working hour' FROM employees GROUP BY emp_name;
出力: