複雑な集計をやってみよう

個数のカウントや値の集計といった方法も、扱うデータが多くなってくると、項目が違ってくると計算も違ってたらいいなと思います。たとえば、購入履歴を管理するテーブルを作るときがそうです。各商品に対して、購入履歴が記録できるテーブルを作りましょう。cartsというテーブルを作成します。phpMyAdminを起動します。mydbを選びます。新規にcartsという名前の3つのカラムを持つテーブルを作りましょう。各カラムを設定したら、IDカラムはプライマリーキー、オートインクリメントをそれぞれ設定しましょう。数字しか挿入できない簡素なテーブルとなりますが、リレーションを前提したテーブルとなります。item_idカラムに入ってくる数字はmy_itemsテーブルのidと一致します。これを見るとどの商品がいくつ売れたかがわかります。my_itemsテーブルとリレーションを張ってみましょう。「SELECT my_items.item_name,carts.count FROM my_items, carts WHERE my_items. id=carts.item_id;」です。そしてSUMという合計数を計算するSQLを利用すると、全部で商品をいくつ販売したかわかります。しかし、これでは全部で何個販売したかはわかりますが、それぞれの商品が何個売れたのかはわかりません。こういう◯◯ごとの集計を行うというのはGROUP BYという句を使います。ここで注意しなければならないのは、GROUPS BY が付加されているのは当然ですが、カラムにitem_idが追加されていることです。これでどの商品の結果なのか分かるということです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です