見出し画像

【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 商品名

とすると良いです。

そのほかにも行数を数えたり偏差値や最大/最小値を求めたりも出来ます。その辺は公式リファレンスを参照のこと。


この記事が気に入ったらサポートをしてみませんか?