看板 Database 關於我們 聯絡資訊
資料庫為 oracle 假設table內容如下 A B C D E 欄位(其值如下) ----------- A 1 0 1 0 A 2 0 2 0 B 1 1 1 1 B 2 0 2 0 C 1 1 1 1 C 1 1 1 1 我想求出此結果 A 2 =>(C和E欄位等於0的共有2個) B 1 =>(C和E欄位等於0的共有1個) C 0 =>(C和E欄位等於0的共有0個) 我該怎麼寫呢? 謝謝了~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 42.79.218.14
bohei:SELECT A,COUNT(*) FROM table WHERE C=0 AND E=0 02/18 22:18
bohei:GROUP BY A 02/18 22:18
bohei:撈出A欄位跟筆數,並且符合C=0跟E=0的條件,照A欄位分群 02/18 22:19
blackspace98:這也是我一開始寫的方式,但是這樣 我要的結果 C 0 02/18 22:35
bohei:沒c出現嗎 02/18 22:36
blackspace98:就跑不出來了>"< 02/18 22:36
bohei:我只想到...OUTER自己.. 02/18 22:50
blackspace98:沒關係的^^,我也還在想呢,條件式的C0還不好兜XD 02/18 23:08
cloudsan:先select所有id在outer join b大的? 02/19 00:49
blackspace98:select distinct(a.a),coalesce(c.c ,c.c,0) 02/19 09:18
blackspace98:from table a, 02/19 09:20
blackspace98:( 02/19 09:20
blackspace98: select a,count(*)c from table where c=0 and e=0 02/19 09:21
blackspace98: group by a 02/19 09:22
blackspace98:)c 02/19 09:22
blackspace98:where a.a=c.a(+) 02/19 09:23
blackspace98:以上是我想的方式,不知道還有沒有其他方式 02/19 09:24
blackspace98:謝b大和c大~ 02/19 09:25
bohei:對了,這table沒PK嗎? 02/19 10:11
blackspace98:沒有耶只是我想到的一個小測試,如果有的話還有其他 02/19 10:17
blackspace98:解法嗎? 02/19 10:17
bohei:我剛剛試了一下OUTER自己,也不行XD 02/19 10:19
bohei:看似簡單... 02/19 10:19
blackspace98:我覺得要把C 0(都找不到,也要顯示)這邊我兜比較久XD 02/19 10:29
bohei:select a1.A,(SELECT COUNT(*) FROM bohui a2 where a1.A=a2 02/19 10:30
bohei:.A and C=0 and E=0 ) from bohui a1 group by a1.A 02/19 10:31
bohei:這樣,剛試出來是可的!! bohui換成你自己的table.. 02/19 10:33
blackspace98:謝謝!!這個方法比我的更好呢~~~~ 02/19 11:47
swpoker:select a,sum(ce) from 02/19 15:21
swpoker:(select a,decode(c+e,0,1,0) ce from testdb) 02/19 15:21
swpoker:group by a 02/19 15:21
blackspace98:謝謝swpoker大我都把它想的太複雜了,方法又更好呢~ 02/19 16:18
ttnan:select A, sum(case when C=0 and E=0 then 1 else 0 END) 02/19 16:21
ttnan:from table group by A 02/19 16:22