【MySQL】合計や平均を集計するためのクエリを書く
こういう表があったときに
商品名 | 販売数 | 日付
-------|-------|------
商品A | 1 | 10/1
商品B | 1 | 10/1
商品C | 1 | 10/1
商品A | 2 | 10/2
商品C | 3 | 10/3
...
「10月中の商品Aの販売数の合計」とか「10/1の商品販売数の合計」とか「当月中の商品Aの1日当たりの平均販売数」みたいなものを、SQL文だけで計算したい時のためのクエリを作ります。
正確な情報は公式リファレンスをどうぞ
雑な情報は続きの記事をどうぞ。とりあえず合計と平均だけです。
①条件に一致する行の、特定のカラムの合計数を集計する
「商品Aの合計販売数が欲しい」みたいなやつ
SELECT 商品名, SUM(販売数) WHERE 商品名 = 商品A GROUP BY 商品名
SELECT句の中にSUM()を使い、WHERE句に条件書いて、最後にGROUP BYを使って名寄せに使うカラムを設定します。(GROUP BY 商品名)と書くと、商品名が同じもの同士を名寄せして、販売数を合計してくれます。
②特定のカラムの平均値を出す
SELECT 商品名, AVE(販売数) GROUP BY 商品名
商品ごとの販売数の平均を算出します。ちなみに小数点以下がだだだだだ……っと出てくるので、四捨五入する際はROUNDを噛ませて
SELECT 商品名, ROUND(AVE(販売数),1) GROUP BY 商品名
とすると良いです。
そのほかにも行数を数えたり偏差値や最大/最小値を求めたりも出来ます。その辺は公式リファレンスを参照のこと。
この記事が気に入ったらサポートをしてみませんか?