GROUP BY:複雑な集計

GROUP BY

  • テーブルの行をグループ化して、データを抽出する場合に使用します
  • グループ内で値の平均値や合計値を求めるなど、集計することができます
購入履歴を管理するテーブルを作る
  • 新規テーブル「carts」をフィールド数「3」で作る

  • データを挿入しておきます

「my_items」テーブルとリレーションを貼る
SELECT my_items.item_name, carts.count FROM my_items, carts WHERE my_items.id=carts.item_id;

商品の購入数を算出する
SELECT SUM(count) FROM carts;

商品ごとの購入数を算出する
SELECT item_id, SUM(count) FROM carts GROUP BY item_id;

商品名を結果に表示する
  • リレーションを使って「my_items」「item_name」からデータを抜き出します
SELECT i.item_name, SUM(c.count) FROM my_items i, carts c WHERE i.id=c.item_id GROUP BY c.item_id;


※「my_items」と「carts」が商品IDで統合され、商品名と売れた個数が表示されます。