SQL GROUP BYステートメント
SQL GROUP BYステートメント
GROUP BY
ステートメントは、「各国の顧客数を見つける」のように、同じ値を持つ行を集計行にグループ化します。
GROUP BY
ステートメントは、集約関数 (COUNT()
、MAX()
、MIN()
、SUM()
、AVG()
) を使用して、結果セットを1つ以上の列でグループ化します。
GROUP BY構文
SELECT <em>column_name(s)</em>
FROM <em>table_name</em>
WHERE <em>condition</em>
GROUP BY <em>column_name(s)
</em>ORDER BY <em>column_name(s);</em>
デモデータベース
以下は、Northwindサンプルデータベースの"Customers"テーブルからの選択です。
顧客ID |
顧客名 |
連絡先 |
住所 |
街 |
郵便番号 |
国 |
---|---|---|---|---|---|---|
1 |
アルフレッド・フードボックス | マリア・アンダース | オベレ通り57 | ベルリン | 12209 | ドイツ |
2 | アナ・トルヒーヨ サンドイッチとアイスクリーム | アナ・トルヒーヨ | コンスティトゥシオン通り2222番地 | メキシコDF | 05021 | メキシコ |
3 | アントニオ・モレノ・タケリア | アンソニー・モレノ | マタデロス 2312 | メキシコDF | 05023 | メキシコ |
4 |
アラウンド・ザ・ホーン | トーマス・ハーディ | 120 ハノーバー スクエア | ロンドン | WA1 1DP | イギリス |
5 | バーグルンドのスーパーマーケット | クリスティーナ・ベルグルンド | ベルグフスヴァーゲン 8 | ルレオ | S-958 22 | スウェーデン |
SQL GROUP BYの例
次のSQLステートメントは、各国の顧客数を一覧表示します。
次のSQLステートメントは、各国の顧客数を上位から下位に並べ替えて一覧表示します。
例
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;
デモデータベース
以下は、Northwindサンプルデータベースの"Orders"テーブルからの選択です。
オーダーID |
顧客ID |
従業員ID |
注文日 |
荷送人ID |
---|---|---|---|---|
10248 | 90 | 5 | 1996-07-04 | 3 |
10249 | 81 | 6 | 1996-07-05 | 1 |
10250 | 34 | 4 | 1996-07-08 | 2 |
そして、「Customers」テーブルからの選択
荷送人ID |
荷送人名 |
---|---|
1 | スピーディエクスプレス |
2 | ユナイテッドパッケージ |
3 | 連邦海運 |
JOINを使用したGROUP BYの例
次のSQLステートメントは、各配送業者から送信された注文の数を一覧表示します。
例
SELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders
LEFT JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID
GROUP BY ShipperName;
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。