죄송합니다.. 잘못 올렸군염.. ㅠ,.ㅠ
select count(*) total,sum(case when flag='0000' then 1 end) zero_cnt
from a123
이렇게 바꾸셔야 합니다..
-- 박종영 님이 쓰신 글:
>> select count(*) total,count(case when flag='0000' then 1 end) zero_cnt
>> from a123
>>
>> 이렇게 바꾸시면 될듯.. ^^*
>> -- 손님 님이 쓰신 글:
>> >> 안녕하세요..
>> >> 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
>> >>
>> >> 어떻게 하면될까요?
|