안녕하세요..
SQL초보입니다.
sql을 만들려고 보니 테이블을 두번 읽게 되는거 같어서 한번만 읽고자 합니다.
어떻게 해야되는지 조언부탁드리니다.
TABLE a123
===============
ID FLAG
===============
100 0000
101 0000
102 0010
103 0001
104 0000
........
===============
결과
===============
total zero_cnt
===============
5 3
이런 결과를 얻고 싶거든요..여기 예제는 데이타가 얼마 안되지만
실제로는 수십,백만 까지 쌓일 수 있는 테이블이라서
성능을 생각하지 않을 수가 없군요..
여기저기 사이트 돌아다니면서 오라클의 경우는 다음과 같은 답을 얻었습니다.
select count(*) total,count(decode(flag,'0000',1)) zero_cnt
from a123
그래서 이걸 informix용으로 바꿔서 다음과 같이 하니까 syntax error가 나는군요
select count(*) total,count(case when flag='0000' then 1 end) zero_cnt
from a123
어떻게 하면될까요?
|