SQLでCASE文と集約関数を効率的に組み合わせる方法

この記事では、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;

出力結果

複合区分個数平均価格
東京高価格101200
東京低価格15800
その他高価格51300
その他低価格20700
複数条件の出力結果

まとめ

SQLのCASE文と集約関数を組み合わせることで、条件に応じた柔軟なデータ集計が可能です。基本形から応用形まで、さまざまな場面で活用することができます。この組み合わせをマスターすることで、より高度なデータ解析が行えるようになります。

コメント

コメントする

目次