かなめのロジック

フリーSEの雑記ブログ。ORACLEやPostgreSQL、情報セキュリティ、金融について主に書いています。

CASE式を使ってみよう、応用編part2

time 2016/01/15

CASE式を使ってみよう、応用編part2

CASE式を使用することで、SQL中で条件制御を行うことが出来ます。
本記事では、集約(GROUP BY)を絡めるという応用的な使い方を紹介していきたいと思います。

sponsored link

集約での使用(変換した値を集約キーにする)

集約(GROUP BY)の中で使用することで、変換した値を集約キーにする事が出来ます。

例えば、年齢が20歳未満と20歳以上のグループに分けて集約する場合、以下となります。

条件付きで集計する

CASE式と集約関数を組み合わせることで、条件付きで集計する事が出来ます。

例えば、年齢が20歳未満の人数の合計と20歳以上の人数の合計を取得する場合、以下となります。

通常

通常(UNION ALL使用)

条件付きで集計

注目すべき点は、条件付きで集計で出力した場合は、それぞれを列として抽出している点です。
最終的にこの形式で出力したい場合、通常の場合はSELECT結果を外側のプログラムや手作業でピボット表の形式に整形する必要があります。

まとめ

本記事では、集約が絡んだ使い方を紹介しました。
CASE式は、応用することでSQLで出来ることが大きく広がります。
動作を理解し、ぜひ利用してみましょう。

関連(CASE式)



関連(DECODE関数)

sponsored link

管理人

かなめ

フリーの業務系システムエンジニア。情報処理安全確保支援士。 ORACLEと金融と子育ての狭間で、元気に楽しくやってます。 [詳細]

管理人twitter

ブログ村



sponsored link