この記事では、SQLのCASE文と集約関数(SUM、AVG、COUNTなど)を組み合わせる手法について解説します。この組み合わせは、データ解析やレポート作成で非常に便利な方法となるでしょう。具体的なコード例とその解説、また利点と局面に応じた使い方について詳しく見ていきます。
目次
なぜCASE文と集約関数の組み合わせが重要か
CASE文と集約関数を組み合わせることで、より柔軟なデータ集計が可能になります。特に、条件に応じた集計や複雑な集計が必要な場合、この組み合わせが非常に有用です。
基本的なCASE文と集約関数の組み合わせ
最もシンプルな形でのCASE文と集約関数の組み合わせは、CASE文内で条件を指定し、その結果を集約関数で集計する形です。
基本形
例えば、ある商品の売上を集計する場面を考えましょう。以下はそのSQLの一例です。
SELECT
CASE
WHEN price >= 1000 THEN '高価格'
WHEN price < 1000 THEN '低価格'
END AS price_category,
COUNT(*) AS count
FROM sales
GROUP BY price_category;
出力結果
価格区分 | 個数 |
---|---|
高価格 | 20 |
低価格 | 30 |
複雑な条件での応用
基本形を応用することで、より複雑な条件でも柔軟に集計できます。
複数条件の場合
複数の条件が組み合わさった集計もCASE文と集約関数を用いることで可能です。
SELECT
CASE
WHEN price >= 1000 AND region = '東京' THEN '東京高価格'
WHEN price < 1000 AND region = '東京' THEN '東京低価格'
WHEN price >= 1000 AND region != '東京' THEN 'その他高価格'
ELSE 'その他低価格'
END AS complex_category,
COUNT(*) AS count,
AVG(price) AS avg_price
FROM sales
GROUP BY complex_category;
出力結果
複合区分 | 個数 | 平均価格 |
---|---|---|
東京高価格 | 10 | 1200 |
東京低価格 | 15 | 800 |
その他高価格 | 5 | 1300 |
その他低価格 | 20 | 700 |
まとめ
SQLのCASE文と集約関数を組み合わせることで、条件に応じた柔軟なデータ集計が可能です。基本形から応用形まで、さまざまな場面で活用することができます。この組み合わせをマスターすることで、より高度なデータ解析が行えるようになります。
created by Rinker
¥4,554
(2024/11/21 10:54:58時点 Amazon調べ-詳細)
コメント