| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
68 バイト追加 、 2020年2月16日 (日) 04:32
編集の要約なし
==[[SQL CASE]]=={{category [[Category:SQL}}]]
{{amazon|4798115169}}
*すばらしい本。自分なりに以下消化しとく。
==CASE式==
[[Database]{{category ] | [[Category:SQL}}]]
===CASEの書式===
=====単純CASE=====
*集計のためのキーを持っていない状態で、任意の条件でグループ化して集計する。
=====元テーブル=====
[[SQL> ]]> select * from test01;
KEY1 VAL1
e 5
f 6
=====[[SQL]]=====
select case key1 when 'a' then 'g1'
when 'b' then 'g1'
/
=====結果=====
GROU G[[R]]OU SUM(VAL1)
---- ----------
g1 3
o1 6
===異なる条件の集計を1つのSQLで異なる条件の集計を1つの[[SQL]]で===
*KEY1グループで、KEY2別にVAL1の集計を行い結果を列に表示させる
=====元テーブル=====
[[SQL> ]]> select * from test02;
KEY1 KEY2 VAL1
c 2 5
c 3 6
=====[[SQL]]=====
select key1,
sum ( case when key2='1' then val1 else 0 end) as cnt_1,
===テーブルをマッチングしてマトリックスを作成===
=====元データ=====
[[SQL> ]]> select * from test03;
KEY1
c
[[SQL> ]]> select * from test04;
KEY1 KEY2
c 3
=====[[SQL]]=====*[[Access SQL マトリックスを作成する|Accessでの例] [Accessでの例]
select key1,
case when key1 in (select key1 from test04 where key2 = 1) then '○' else '-' end as k_1,
*KEY1に対して、KEY2の件数を調べて最小値を表示。KEY2が複数ある場合「代表」と表示させる
=====元テーブル=====
[[SQL> ]]> select * from test04;
KEY1 KEY2
b 3
c 3
=====[[SQL]]=====
select key1,
  case when count(key1) = 1

案内メニュー