この記事では、SQLのCASEステートメントと組み合わせて、条件に応じた最大・最小値を抽出する方法について解説します。テーブルを用いて具体的なSQLクエリ例を示し、その挙動について詳しく説明することで、この技術を効率よくマスターできるようにします。
目次
CASEステートメントとは
CASEステートメントは、SQLで条件によって異なる値を返すためのステートメントです。一般的なプログラム言語における「if-else」文に相当します。
基本的なCASEステートメントの書き方
SELECT CASE
WHEN 条件1 THEN 値1
WHEN 条件2 THEN 値2
ELSE その他の値
END;
条件に応じた最大・最小値の抽出
SQLにおける「MAX」や「MIN」関数とCASEステートメントを組み合わせることで、条件に応じた最大・最小値を簡単に抽出できます。
基本的な書き方
SELECT MAX(CASE WHEN 条件 THEN カラム名 ELSE NULL END)
FROM テーブル名;
具体的な例
以下のテーブルを考えてみましょう。
社員ID | 部門 | 給与 |
---|---|---|
1 | 営業 | 500000 |
2 | エンジニア | 600000 |
3 | 営業 | 450000 |
4 | エンジニア | 700000 |
「営業」部門の中で最高の給与を抽出する場合のSQLは以下の通りです。
SELECT MAX(CASE WHEN 部門 = '営業' THEN 給与 ELSE NULL END)
FROM 給与テーブル;
複数条件での最大・最小値抽出
複数の条件で最大・最小値を抽出することも可能です。例えば、部門と性別で最大・最小の給与を抽出する場合などがあります。
複数条件でのSQL例
SELECT 部門,
MAX(CASE WHEN 性別 = '男' THEN 給与 ELSE NULL END) AS "男性最高給与",
MIN(CASE WHEN 性別 = '女' THEN 給与 ELSE NULL END) AS "女性最低給与"
FROM 給与テーブル
GROUP BY 部門;
まとめ
この記事では、SQLのCASEステートメントと、条件に応じた最大・最小値を抽出する方法について解説しました。特にテーブルを用いて具体的な例を示すことで、この複雑なテーマを簡単に理解できるように努力しました。この技術は、データ分析において非常に有用であり、多くの場面で活用できるでしょう。
created by Rinker
¥4,554
(2024/11/22 10:55:01時点 Amazon調べ-詳細)
コメント