SELECT, 関数

SELECTのCASE句について

コメントをどうぞ

ITコーディネータのシュウです。

たまにはITコーディネータについての情報もあったほうがいいかと思い、ITコーディネータ協会のHPから気づいた点を報告します。結構HPもリニューアルしていますね。

それで、1年以上前からイノベーションが創出できる次世代高度IT人材の育成について、独立行政法人情報処理推進機構(IPA)と共同で呼びかけ「IT融合人材育成連絡会」を立ち上げていました。そして「IT融合人材」の具体的な育成と組織のあり方についての検討成果についての最終報告書がホームページで公開されているようです。
http://www.itc.or.jp/news/inv20140325.html

イノベーションを創出できる人材を、あるプロセスに従うことで効果的に育成できれば?日本の将来にとっても本当に大きいことですよね。頑張れニッポン!

<本日の題材>
SELECTのCASE句について

今回は 【送料無料】 2本セット 285/35R18 101Y XL ブリヂストン ポテンザ POTENZA S007A 18インチ 新品サマータイヤ、最近システムを作り込むときに確認した内容で、SELECT文で複数の条件でのそれぞれの件数の結果を1つのSQLで実施する際に CRIMSON(クリムソン) CLUB LINEA L747D (クラブリネア L747D) 19インチ 8.5J PCD:100 穴数:5 inset:8 DISK TYPE:LOW カラー:ブラックポリッシュ [ホイール1本単位]/H 【送料無料】 215/70R16 16インチ BRANDLE-LINE ブランドルライン カルッシャー ブラック 6.5J 6.50-16 DUNLOP ダンロップ グラントレック AT3 サマータイヤ ホイール4本セット【DUsum18】、CASE句を利用したケースについて記載します。(ORACLEです)

例)あるテーブル(受注実績テーブルとします)のデータで NEOPLOT/ネオプロト ブレーキペダルネオ インプレッサスポーツワゴン GGA/GGB/GGC/GGD MT NP70310、あるフラグ(判定フラグとします)に「1」が立っているものと「0」のもの [Projectμ] プロジェクトμ ブレーキパッド タイプHV リア用 ハリアー ZSU60W ZSU65W 13/12~ G's除く 2.0L 本州は送料無料 北海道は送料500円(税別) 沖縄・離島は送料1000円(税別)、及び全体の合計件数を抽出する。

SELECT
受注年月
, COUNT(CASE 判定フラグ WHEN '1' THEN 1 ELSE NULL END) AS 判定有
, COUNT(CASE 判定フラグ WHEN '0' THEN 1 ELSE NULL END) AS 判定無
, COUNT(*) 合計件数
FROM 受注実績
GROUP BY 受注年月
ORDER BY 受注年月;

他の方法としては 、

HONDA ホンダ ODYSSEY オデッセイ ホンダ純正 フロント センサー 本体 G全用 モダンスティールM 2016.12~仕様変更 08V66-T6A-060K激安特価で販売中!

、インラインビューを使用して下記のように行うこともできます。

SELECT
受注実績1.年月
, 受注実績1.件数 判定有
, 受注実績2.件数 判定無
, 受注実績3.件数 合計件数
FROM
(SELECT 受注年月, COUNT(*) 件数 FROM 受注実績
WHERE 判定フラグ = '1'
GROUP BY 受注年月) 受注実績1
, (SELECT 受注年月, COUNT(*) 件数 FROM 受注実績
WHERE 判定フラグ = '0'
GROUP BY 受注年月) 受注実績2
, (SELECT 受注年月, COUNT(*) 件数 FROM 受注実績
GROUP BY 受注年月) 受注実績3
WHERE 受注実績1.受注年月 = 受注実績2.受注年月
AND 受注実績1.受注年月 = 受注実績3.受注年月
ORDER BY 受注実績1.受注年月;

 

でも、CASE句を使って抽出したほうが簡単ですね。
CASE文はいろいろなところで使用できますが、1つの例としてあげました。

今日は以上まで


にほんブログ村