作者blackspace98 (~我爱夏天~)
看板Database
标题[SQL ] oracle分组条件统计
时间Mon Feb 18 22:12:48 2013
资料库为 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
1F:→ bohei:SELECT A,COUNT(*) FROM table WHERE C=0 AND E=0 02/18 22:18
2F:→ bohei:GROUP BY A 02/18 22:18
3F:→ bohei:捞出A栏位跟笔数,并且符合C=0跟E=0的条件,照A栏位分群 02/18 22:19
4F:→ blackspace98:这也是我一开始写的方式,但是这样 我要的结果 C 0 02/18 22:35
5F:→ bohei:没c出现吗 02/18 22:36
6F:→ blackspace98:就跑不出来了>"< 02/18 22:36
7F:→ bohei:我只想到...OUTER自己.. 02/18 22:50
8F:→ blackspace98:没关系的^^,我也还在想呢,条件式的C0还不好兜XD 02/18 23:08
9F:推 cloudsan:先select所有id在outer join b大的? 02/19 00:49
10F:→ blackspace98:select distinct(a.a),coalesce(c.c ,c.c,0) 02/19 09:18
11F:→ blackspace98:from table a, 02/19 09:20
12F:→ blackspace98:( 02/19 09:20
13F:→ blackspace98: select a,count(*)c from table where c=0 and e=0 02/19 09:21
14F:→ blackspace98: group by a 02/19 09:22
15F:→ blackspace98:)c 02/19 09:22
16F:→ blackspace98:where a.a=c.a(+) 02/19 09:23
17F:→ blackspace98:以上是我想的方式,不知道还有没有其他方式 02/19 09:24
18F:→ blackspace98:谢b大和c大~ 02/19 09:25
19F:→ bohei:对了,这table没PK吗? 02/19 10:11
20F:→ blackspace98:没有耶只是我想到的一个小测试,如果有的话还有其他 02/19 10:17
21F:→ blackspace98:解法吗? 02/19 10:17
22F:→ bohei:我刚刚试了一下OUTER自己,也不行XD 02/19 10:19
23F:→ bohei:看似简单... 02/19 10:19
24F:→ blackspace98:我觉得要把C 0(都找不到,也要显示)这边我兜比较久XD 02/19 10:29
25F:→ bohei:select a1.A,(SELECT COUNT(*) FROM bohui a2 where a1.A=a2 02/19 10:30
26F:→ bohei:.A and C=0 and E=0 ) from bohui a1 group by a1.A 02/19 10:31
27F:→ bohei:这样,刚试出来是可的!! bohui换成你自己的table.. 02/19 10:33
28F:→ blackspace98:谢谢!!这个方法比我的更好呢~~~~ 02/19 11:47
29F:推 swpoker:select a,sum(ce) from 02/19 15:21
30F:→ swpoker:(select a,decode(c+e,0,1,0) ce from testdb) 02/19 15:21
31F:→ swpoker:group by a 02/19 15:21
32F:→ blackspace98:谢谢swpoker大我都把它想的太复杂了,方法又更好呢~ 02/19 16:18
33F:→ ttnan:select A, sum(case when C=0 and E=0 then 1 else 0 END) 02/19 16:21
34F:→ ttnan:from table group by A 02/19 16:22