오라클 초보 case문 질문드립니다. 0 3 2,057

by 쪼용 [SQL Query] [2011.02.22 11:12:58]



다름이 아니고 제가 성별에 대한 하나의 컬럼을

남자컬럼과 여자컬럼으로 나누어서

각각에 대한 값들의 카운트를 세는 걸 해보고 싶은데

case문으로 어떻게 해도 잘 안돼네요;;;

하나의 컬럼을 가지고 코드값을 남자인지 여자인지만 바꿔주는 것만 나오고

카운트 하는 방법은 나오지 않네요;; 부탁드립니다~

힌트라도 주세요~
by camela [2011.02.22 11:23:54]
성별이 컬럼별로 나누어져 있다면 그냥 sum 하면 되죠.
컬럼값이 어떻게 들어가 있는지에 따라 약간 다르겠지만 1 값이 들어가 있다면..

sum(남자컬럼), sum(여자컬럼)

O 같은 체크값이 들어가 있다면

sum(decode(남자컬럼,'O',1)), sum(decode(여자컬럼,'O',1))

by 마농 [2011.02.22 11:42:12]
-- 두줄로 조회
SELECT DECODE(성별, 'M', '남', 'F', '여') 성별
, COUNT(*) 인원
FROM t
GROUP BY 성별
;

-- 한줄로 조회(전체 건수만큼 decode 수행)
SELECT COUNT(DECODE(성별, 'M', 1)) 남
, COUNT(DECODE(성별, 'F', 1)) 여
FROM t
;

-- 한줄로 조회 개선(decode 2번만 수행)
SELECT MIN(DECODE(성별, 'M', COUNT(*))) 남
, MIN(DECODE(성별, 'F', COUNT(*))) 여
FROM t
GROUP BY 성별
;

by 쪼용 [2011.02.22 15:50:11]
두분다 친절한 댓글 정말 감사합니다~
덕분에 해결되었습니다~
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입