SQL入門チュートリアルマニュ...ログイン
SQL入門チュートリアルマニュアル
著者:php.cn  更新時間:2022-04-12 14:15:40

SQL グループ BY


SQL GROUP BY ステートメント


GROUP BY ステートメントは、いくつかの集約関数と組み合わせて使用​​できます


GROUP BY ステートメント

GROUP BY ステートメントは、結果セットを 1 つのグループに従ってグループ化するために集約関数と組み合わせて使用​​しますまたはそれ以上の列。

SQL GROUP BY 構文

SELECT 列名、集約関数(列名)
FROM テーブル名
WHERE 列名演算子の値
GROUP BY 列名;


デモデータベース

このチュートリアルでは、php サンプル データベースを使用します。

以下は「ウェブサイト」テーブルから選択されたデータです:

+----+-------------+------------ - ---------------+------+-----------+
| 国名 |
-- -+---------------+---------------+----- --+------+
| グーグル https://www.google.cm/ | タオバオ | | 13 | 中国語のウェブサイト |
| | フェイスブック | https://www.facebook.com/ |
| 0 | --------+--------------------------+----------+--- - -----+

以下はWebサイトアクセス記録テーブル「access_log」のデータです:

mysql> SELECT * FROM access_log;
+-----+---------+------ +- -----------+
日付 |
+-----+------+- ----------+
| 2016-05-10 | 230 | 05 - 14 | 2 | 2016 年 5 月 14 日 | 6 | 2016 年 5 月 14 日3 | 220 | 2016-05-15 | 8 | 545 | 2016-05-17 |
----+-------+-----------+
9 行セット (0.00 秒)



単純なアプリケーションによるグループ化

各サイト ID の統計アクセスログ訪問数:

インスタンス

SELECT サイト ID、SUM(アクセス ログ.カウント) AS nums

FROM access_log GROUP BY site_id;

上記の SQL を実行すると、出力結果は次のようになります:


SQL GROUP BY multi-table join

次に、各配達員が配達した注文の数を調べたいと思います。 。
次の SQL ステートメントは、すべての Web サイトがアクセスしたレコードの数をカウントします:


Example

SELECT Websites.name,COUNT(access_log.aid) AS nums FROM access_log

Web サイト

ON に左結合 access_log.site_id=Websites.id

GROUP BY Websites.name;

上記のSQLを実行した出力結果は以下の通りです: