SQLチュートリアル

SQL HOME SQLイントロ SQL構文 SQL Select SQL Select Distinct SQL Where SQL And、Or、Not SQLの順序 SQL Insert Into SQLNull値 SQLアップデート SQL削除 SQL Select Top SQLの最小値と最大値 SQLカウント、平均、合計 SQL Like SQLワイルドカード SQL入力 SQLの間 SQLエイリアス SQL結合 SQL内部結合 SQL左結合 SQL右結合 SQL完全結合 SQL自己結合 SQLユニオン SQL Group By SQLを持っている SQLが存在する SQL Any、All SQL Select Into SQL Insert Into Select SQLケース SQLNull関数 SQLストアドプロシージャ SQLコメント SQL演算子

SQLデータベース

SQL Create DB SQLドロップDB SQLバックアップDB SQLテーブルの作成 SQLドロップテーブル SQL ALTER TABLE SQLの制約 SQLはNullではありません SQL独自 SQL主キー SQL外部キー SQLチェック SQLのデフォルト SQLインデックス SQL自動インクリメント SQLの日付 SQLビュー SQLインジェクション SQLホスティング SQLデータ型

SQLリファレンス

SQLキーワード MySQL関数 SQLServerの機能 MSAccess関数 SQLクイック参照

SQLの

SQLの例 SQLクイズ SQL演習 SQL証明書

SQL GROUPBYステートメント


SQL GROUPBYステートメント

このGROUP BYステートメントは、「各国の顧客数を検索する」のように、同じ値を持つ行を要約行にグループ化します。

このステートメントは結果セットを1つ以上の列でグループ化するために集計 GROUP BY関数(、、、、、)でよく使用され ます。COUNT()MAX()MIN()SUM()AVG()

GROUPBY構文

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);

デモデータベース

以下は、Northwindサンプルデータベースの「Customers」テーブルからの抜粋です。

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden


SQL GROUPBYの例

次の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」テーブルからの抜粋です。

OrderID CustomerID EmployeeID OrderDate ShipperID
10248 90 5 1996-07-04 3
10249 81 6 1996-07-05 1
10250 34 4 1996-07-08 2

そして、「Shippers」テーブルからの選択:

ShipperID ShipperName
1 Speedy Express
2 United Package
3 Federal Shipping

JOINの例を使用したGROUPBY

次のSQLステートメントは、各荷送人から送信された注文の数を示しています。

SELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders
LEFT JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID
GROUP BY ShipperName;

エクササイズで自分をテストする

エクササイズ:

各国の顧客数をリストします。

SELECT (CustomerID),
Country
FROM Customers
;