【SQL】GROUP BYでのデータのグループ化

SQL
※本ページにはプロモーションが含まれます
※本ページにはプロモーションが含まれます
スポンサーリンク

SQLのGROUP BYとは

SQLのGROUP BY句は、データをグループ化するための機能です。

GROUP BY句を使用すると、指定した列(または列の組み合わせ)に基づいてデータをグループ化し、グループごとの集計や結果の取得が可能になります。

GROUP BYの基本構文と具体例

GROUP BY句の基本的な構文は次の通りです。

SELECT 列1, 列2, ..., 集計関数(列)
FROM テーブル名
GROUP BY 列1, 列2, ...

具体例を用いてもう少し詳細を説明いたします。

以下のようなテーブルがあるとします。

Orders テーブル:

| OrderID | CustomerID | OrderDate  | TotalAmount |
|---------|------------|------------|-------------|
| 1       | 100        | 2023-01-01 | 100.00      |
| 2       | 100        | 2023-02-01 | 50.00       |
| 3       | 200        | 2023-01-15 | 200.00      |
| 4       | 200        | 2023-03-01 | 75.00       |
| 5       | 300        | 2023-02-15 | 300.00      |

以下のクエリを実行すると、顧客ごとの合計注文金額を計算できます。

SELECT CustomerID, SUM(TotalAmount) AS Total
FROM Orders
GROUP BY CustomerID

クエリの結果は次のようになります。

| CustomerID | Total     |
|------------|-----------|
| 100        | 150.00    |
| 200        | 275.00    |
| 300        | 300.00    |

GROUP BYとDISTINCTの違い

GROUP BY句とDISTINCTは、重複した値を除去するための機能ですが使い方や目的は異なります。

GROUP BY

GROUP BY句は、データを指定した列(または列の組み合わせ)に基づいてグループ化します。

グループごとに集計関数(SUM、COUNT、AVGなど)を使用して統計情報を計算することができます。GROUP BYを使用すると、グループごとの集計結果を取得することができます。

例えば、顧客ごとの合計注文金額を計算するために、CUSTOMERSテーブルからデータを取得する場合、以下のようなクエリを使用できます。

SELECT CustomerID, SUM(TotalAmount) AS Total
FROM Orders
GROUP BY CustomerID

結果は、各顧客ごとの合計注文金額が表示されます。

DISTINCT

DISTINCTは、指定した列の重複した値を除去して一意の値のみを取得するために使用されます。

重複したレコードを削除し、ユニークな値のみを取得する場合に使用します。例えば、CUSTOMERSテーブルから一意の顧客IDのリストを取得するために、以下のようなクエリを使用できます。

SELECT DISTINCT CustomerID
FROM Orders

結果は、重複するCustomerIDが除去された一意の値のみが表示されます。

DISTINCTについてはこちらで解説しておりますのでご参考ください。

もしプログラム学習でお困りでしたら、受講生に1人ずつ現役プロのパーソナルメンターがつく TechAcademy [テックアカデミー] のご活用をぜひご検討ください!

GROUP BYまとめ

以上がGROUP BY句の解説となります。

GROUP BY句では、グループ化する列を指定することでデータをグループ化し、集計関数(SUM、COUNT、AVGなど)を使用して各グループの統計情報を計算することができます。

SQL文法関連記事

そのほか、SQL関連記事をこちらにまとめておりますのでご参考ください。
Coffee Tech Blog SQL関連記事

参考になれば幸いです☕

もしIT業界への転職でお困りでしたら、IT・WEB・ソーシャルゲーム業界への転職ならGEEKLYへのご相談をご検討ください!(私自身も転職の際に活用させて頂き、ご縁を頂くことができました)

コメント

タイトルとURLをコピーしました