(ORACLE) SUM을 COUNT 처럼 쓰는 방법에 대해 여쭤봅니다. 0 4 3,148

by 기그스 [Oracle 기초] [2011.09.13 18:36:18]



안녕하세요.
저랑은 대화코드가 안맞으시는지 무뚝뚝하시고 직선적이시지만(저랑은 대화가 거의없습니다.하하)  개인적으로 정말 존경하는 분이 옆에서 같이 일하십니다. 언젠가 퀴즈1을 내주시고 그거 끝나니깐 퀴즈2를 내주셨습니다. 그 분 덕택에 정말 많이 배우고 있습니다. 퀴즈가 정말 간단하지만 기초며 응용이 필요한 문제로 내주시거든요. 저도 겉으로는 내색을 안하지만 정말 감사해하고있습니다. 그분께서 원하시는 쪽을 잘 생각해서 혼자 풀려고 일주일내내 그 퀴즈만 가지고 회사에서 퀴즈만 풀었습니다. 결국 1주일이 지났고 못풀었습니다. 실망도 하셨겠지만 그러다가 오늘 말씀해주신게 SUM을 COUNT 처럼 쓰라고 힌트를 주셨습니다. SUM과 COUNT 차이에 대해 자료구조시 어떤게 적합하고 부적합한지 설명을 잠깐 곁들여주시면서, SUM을 COUNT 처럼 쓸줄 모르면 백날 못푼다고 하셨거든요. 통계 퀴즈였습니다.
대체적으로 어떻해 하라는건지는 알겠습니다.
그래도 실망시켜드리고 싶지 않아 이렇게 구체적으로 어떤 방법이 있을지 여쭤봅니다
by 하얀비 [2011.09.14 08:38:18]
음 의도한 바가 맞는지는 모르겠지만 저는 이렇게 썻던 적이 있습니다.

select sum(decode(A.FLAG,'Y'.'1'.'0'))
FROM TABLE

by 하얀비 [2011.09.14 08:41:03]
위에 같이 했을경우 WHERE 조건에 FLAG = 'Y' 라는 조건을 걸 필요가 없어서

FLAG 값과 상관없이 모든 데이터를 구할 수있고 FALG 가 'Y'인 데이터의 카운터를

구할 수 있었습니다.

by 기그스 [2011.09.14 23:24:20]
하얀비님 저의 요점이 확실치 않은 글을 읽으시고 정확하게 작성해주셨어요. 저도 오늘 그렇게 풀었답니다. 진심 어린 답변 감사드립니다.

by 암비 [2011.09.15 08:13:02]
예전에 몰라서 많이들 SUM을 쓰셨습니다만.
소스 헤깔려집니다.
그냥 COUNT 쓰세요.

SUM(DECODE(A.FLAG, 'Y', 1, 0))
COUNT(DECODE(A.FLAG, 'Y', 1, NULL))
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입