TECH I.S.

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ステートメントは、各国の顧客数を一覧表示します。

SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Country;

自分で試してみる(開発準備中) »

次の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;

自分で試してみる(開発準備中) »


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細