【SQL】MySQLデータ集計コマンドまとめ
■列同士の値を四則演算(足す+,引く-,掛ける*,割る/)する
(例)SELECT name, price * number AS "売上" FROM sales;
※列priceと列numberを掛け合わせた値を売上という列名で表示
■列の合計を表示する(SUM)
(例)SELECT SUM(price) FROM sales;
※テーブルsalesの列priceの合計値を表示
■列の平均値を表示する(AVG)
(例)SELECT AVG(price) AS "平均売上額" FROM sales;
※テーブルsalesの列priceの平均値を平均売上額という列名で表示
■列の最大値を表示する(MAX)
(例)SELECT MAX(price) AS "最大売上" FROM sales;
※テーブルsalesの列priceの最大値を最大売上という列名で表示
■列の最小値を表示する(MIN)
(例)SELECT MIN(price) AS "最小売上" FROM sales;
※テーブルsalesの列priceの最小値を最小売上という列名で表示
■列の件数を表示する(COUNT)
(例)SELECT COUNT(price) AS "件数" FROM sales;
※テーブルsalesの列priceの件数を件数という列名で表示
■重複するデータを外して集計する(DISTINCT)
(例)SELECT DISTINCT category FROM total;
※テーブルtotalの列categoryに登録されているデータの種類を表示(重複なし)
(例)SELECT COUNT(DISTINCT category) AS "カテゴリの種類数" FROM total;
※テーブルtotalの列categoryに登録されているカテゴリの種類件数を表示
■条件によって表示する値を変える(CASE)
(例)SELECT name, sales, CASE
WHEN sales >= 5000 THEN 'OK'
WHEN sales >= 3000 THEN 'まあまあ'
ELSE 'ダメ'
END AS "評価"
FROM total;
name | sales | 評価 |
---|---|---|
りんご | 4800 | まあまあ |
みかん | 2100 | ダメ |
いちご | 7900 | OK |
桃 | 4950 | まあまあ |
(例)SELECT name, sales, CASE category
WHEN '果物' THEN 'フルーツ'
WHEN '野菜' THEN 'ベジタブル'
END AS "分類"
FROM total;
※CASEの後に条件判断の対象となる列を記述。WHEN category = '果物' THEN 'フルーツ'と同じ。
(例)SELECT COUNT(category) AS "総数",
SUM( CASE category
WHEN '果物' THEN 1
ELSE 0
END ) AS "果物の数",
SUM( CASE category
WHEN '野菜' THEN 1
ELSE 0
END ) AS "野菜の数"
FROM total;
総数 | 果物の数 | 野菜の数 |
---|---|---|
8 | 5 | 3 |
※果物の数=列cateogryが果物のものは1を返しその合計を表示
(例)SELECT SUM(sales) AS "売上合計",
SUM( CASE category
WHEN '果物' THEN sales
ELSE 0
END ) AS "果物の売上額",
SUM( CASE category
WHEN '野菜' THEN sales
ELSE 0
END ) AS "野菜の売上額"
FROM total;
※上記のように条件に一致する列の合計を表示していくことも可能