SQLでCASEステートメントと組み合わせて条件に応じた最大・最小値を抽出する方法

この記事では、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ステートメントと、条件に応じた最大・最小値を抽出する方法について解説しました。特にテーブルを用いて具体的な例を示すことで、この複雑なテーマを簡単に理解できるように努力しました。この技術は、データ分析において非常に有用であり、多くの場面で活用できるでしょう。

コメント

コメントする

目次