총 합계를 구할때 특정 값을 제외하고 싶습니다. 0 2 1,332

by 픽칼 [SQL Query] [2016.04.15 10:14:58]


안녕하세요. 질문이 있습니다.

아래와 같은 데이터가 있습니다.

A 1

A 1

B 2

B 2

C 3

C 3

원하는 결과 ==> 항목별 합계 및 총합계에서 특정값 제외

A 2

B 4

C 6

   8(총합계에서 B는 제외)

쿼리를 여러번 하지 않고 한번에 이런식으로 가능한지 궁금합니다.

by swlee [2016.04.15 10:35:43]

sum(decode(col1,'A',col2,'C',col2))


by 마농 [2016.04.15 10:48:04]
WITH t AS
(
SELECT 'A' cd, 1 v FROM dual
UNION ALL SELECT 'A', 1 FROM dual
UNION ALL SELECT 'B', 2 FROM dual
UNION ALL SELECT 'B', 2 FROM dual
UNION ALL SELECT 'C', 3 FROM dual
UNION ALL SELECT 'C', 3 FROM dual
)
SELECT cd
     , DECODE(GROUPING(cd), 0, SUM(v), SUM(DECODE(cd, 'B', 0, v))) s
  FROM t
 GROUP BY ROLLUP(cd)
;

 

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