日々積み重ねろ。

何も積み重ねて来なかった私が何かを積みかねて行くブログ。主にIT系の技術・知識を書いて行きます。

【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;

namesales評価
りんご 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;

※上記のように条件に一致する列の合計を表示していくことも可能