SELECT, 関数

SELECTのCASE句について

コメントをどうぞ

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

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

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

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

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

今回は HITACHI 日立 イグニッションコイル クイント 1600cc AV-110 ZC 品番U12H09-COIL 1個、最近システムを作り込むときに確認した内容で、SELECT文で複数の条件でのそれぞれの件数の結果を1つのSQLで実施する際に RS-R RSR DOWN セルボ HG21S S148DF フロント 18インチ サマータイヤ セット【適応車種:デュアリス(J10系)】WEDS ウェッズスポーツ SA-77R ブルーライトクローム2 7.5Jx18Bluearth RV-02 225/50R18、CASE句を利用したケースについて記載します。(ORACLEです)

例)あるテーブル(受注実績テーブルとします)のデータで サマータイヤ 245/40R19 (98Y) XL ファルケン アゼニス FK510 BBS FS 8.5-19 タイヤホイール4本セット、あるフラグ(判定フラグとします)に「1」が立っているものと「0」のもの 【30 ヴェルファイア ブラックパールコンプリート】VELLFIRE AYH/GGH/AGH3#W GALAXY NEO REAR HALF SPOILER 単色塗装/ブラック、及び全体の合計件数を抽出する。

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 受注年月;

他の方法としては 、

ブレーキ パッド 【送料無料】ACRE(アクレ)ブレーキ パッド スーパーファイター リア用 97.10~ WRGY61 サファリ
18インチ サマータイヤ セット【適応車種:デリカD:5(CV系 2WD)】HOT STUFF エクシーダー E03 ダークシルバー 7.5Jx18VEURO VE303 225/45R18!HKS スカイラインGT-R BCNR33 レーシングチャンバーキット 純正エアインテークダクト装着時要加工.【★送料無料】 【RN6-9 ストリーム ファイナルコネクション】ストリーム RN6/7/8/9 STEALTH CALIPER KIT フロント 4POT ローター径330×32 オプションカラー:クローム仕上げ ドリルド+スリットローター,【★送料無料】 【Z31 フェアレディZ ファイナルコネクション】フェアレディZ Z31 STEALTH CALIPER KIT フロント 4POT ローター径330×32 オプションカラー:クローム仕上げ スリットローター

ブレーキ パッド 【送料無料】ACRE(アクレ)ブレーキ パッド スーパーファイター リア用 97.10~ WRGY61 サファリ

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

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つの例としてあげました。

今日は以上まで


にほんブログ村