MySQLにてGROUP BYを使って、テーブルにある商品ごとの合計を算出します。
前回のMySQLでリレーションを行う方法を知っておくと、理解が捗るはずです。
-
【MySQL】リレーションを設定する方法(phpMyAdmin)
MySQL(phpMyAdmin)でテーブルのリレーションを設定する方法っす。 テーブルと別のテーブルを外部キーで紐付け ...
続きを見る
MySQLでGROUP BYを使って商品ごとの合計値を算出する
今回は商品の代わりに部品表を例に、部品名と部品の数量を表したテーブルを使って、部品ごとの合計値を算出してみます。
※「PARTS」といったテーブルを新規作成しています。
1. テーブルにデータをSQL文で挿入する
まずはSQL文にてデータの挿入・実行して、データの内容を記入します。
データ挿入するSQL文の例
INSERT INTO parts SET parts_id=任意の数. parts_name='部品名'.count=部品の数量;
テーブルは空の状態になっていることが前提です↓
対象のテーブルを選択して、
SQLタブをクリックして、
以下SQL文を記入して実行します。
INSERT INTO PARTS SET parts_id=1, parts_name='電解コンデンサ',COUNT=10;
INSERT INTO PARTS SET parts_id=2, parts_name='チップ抵抗',COUNT=400;
INSERT INTO PARTS SET parts_id=3, parts_name='トランジスタ',COUNT=40;
INSERT INTO PARTS SET parts_id=4, parts_name='レギュレーター',COUNT=10;
INSERT INTO PARTS SET parts_id=5, parts_name='LED',COUNT=34;
INSERT INTO PARTS SET parts_id=6, parts_name='スイッチ',COUNT=4;
INSERT INTO PARTS SET parts_id=7, parts_name='コネクタ',COUNT=40;
INSERT INTO PARTS SET parts_id=3, parts_name='チップ抵抗',COUNT=300;
INSERT INTO PARTS SET parts_id=4, parts_name='LED',COUNT=600;
「1行挿入しました。」という内容が繰り返し表示されてれば成功。
表示タブをクリックするとparts_idや部品名(parts_name)、部品数量(COUNT)が挿入されました↓
GROUP BYを利用してグループごとに集計する
GROUP BYを利用して部品名ごとに集計するには、以下SQL文を利用します。
グループごとに集計するSQL文の例
SELECT フィールド名,SUM(フィールド名) FROM テーブル名 GROUP BY フィールド名;
parts_idだけをグループ化してみる
まずは重複しているparts_idをグループ化する目的で、以下SQL文を実行してみます。
SELECT parts_id, SUM(COUNT) FROM PARTS GROUP BY parts_id;
実行結果は以下の通りです↓
重複したparts_idがグループ化されてるのが分かります。
部品名だけをグループ化してみる
次に部品名の重複をグループ化して、COUNTの合算を算出します。
SELECT parts_name,SUM(COUNT) FROM PARTS GROUP BY parts_name;
部品名の重複をグループ化したCOUNTの合計が算出されました。
まとめ
MySQLでGROUP BYを使って、商品のかわりに部品ごとに集計を行ってみました。
前回のリレーションと組み合わせたものも、いずれ紹介できれば...(今回は準備できなかった.泣)
-
【MySQL】LEFT JOINとRIGHT JOINを使って全てのデータを表示する
MySQLでLEFT(RIGHT)JOINを使って、NULL値であってもデータを取得・表示する方法のメモです。 補足 G ...
続きを見る
関連記事:【MySQL】リレーションを設定する方法(phpMyAdmin)
関連記事:【MySQL】SUM・COUNT・AVGでカラムの値を集計する(phpMyAdmin)
関連記事:【MySQL】DATETIME型でデータの更新日を自動表示する手順(phpMyAdmin)