広告

【MySQL】GROUP BYで商品ごとの合計を算出する(phpMyAdmin)

2019年9月10日

MySQLにてGROUP BYを使って、テーブルにある商品ごとの合計を算出します。

MySQLでGROUP BYを利用したGIF

MySQLでGROUP BYを使って商品ごとの合計値を算出する

今回は商品の代わりに部品表を例に、部品名と部品の数量を表したテーブルを使って、部品ごとの合計値を算出してみます。

MySQLでGROUP BYを行う対象のテーブル

※「PARTS」といったテーブルを新規作成しています。

1. テーブルにデータをSQL文で挿入する

まずはSQL文にてデータの挿入・実行して、データの内容を記入します。

データ挿入するSQL文の例

INSERT INTO parts SET parts_id=任意の数. parts_name='部品名'.count=部品の数量;
注意!
テーブルは空の状態になっていることが前提です↓
テーブルが空の状態

対象のテーブルを選択して、

INSERTを入力する対象のテーブルを選択

SQLタブをクリックして、

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;

SQL文実行の様子

「1行挿入しました。」という内容が繰り返し表示されてれば成功

データの挿入に成功

表示タブをクリックするとparts_idや部品名(parts_name)、部品数量(COUNT)が挿入されました↓

MySQLでGROUP BYを行う対象のテーブル

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でグループ化した実行結果

重複したparts_idがグループ化されてるのが分かります。

部品名だけをグループ化してみる

次に部品名の重複をグループ化して、COUNTの合算を算出します。

SELECT parts_name,SUM(COUNT) FROM PARTS GROUP BY parts_name;

部品名の重複をグループ化したCOUNTの合計が算出されました。

部品名の重複をグループ化した結果

OYAKUN
OYAKUN
ちょっと分かりづらいのですが" LED "、" チップ抵抗 "といった部品がグループ化されCOUNT数が合算されています。

まとめ

MySQLでGROUP BYを使って、商品のかわりに部品ごとに集計を行ってみました。

前回のリレーションと組み合わせたものも、いずれ紹介できれば...(今回は準備できなかった.泣)

OYAKUN
OYAKUN
次回はLEFT JOINを使ったテーブル同士を結合する方法について紹介していきます!
次回記事
MySQL-left-right-join
【MySQL】LEFT JOINとRIGHT JOINを使って全てのデータを表示する

MySQLでLEFT(RIGHT)JOINを使って、NULL値であってもデータを取得・表示する方法のメモです。 補足 G ...

続きを見る

関連記事:【MySQL】リレーションを設定する方法(phpMyAdmin)
関連記事:【MySQL】SUM・COUNT・AVGでカラムの値を集計する(phpMyAdmin)
関連記事:【MySQL】DATETIME型でデータの更新日を自動表示する手順(phpMyAdmin)