count 값 여러개를 한번에 출력 0 1 515

by 퇴근하고싶다 [2019.01.15 21:07:30]


테이블안에 값들을 count하고 싶은데 하나씩 할려니깐 너무 노가다같네요 ㅠ

만약 테이블이

전자제품 가격
a 100
a 200
a 150
b 200
b 150
c 180
c 200

이렇게 출력되는 것을 

a b c
3 2 2

이렇게 한번에 출력되게 할려는데..잘 안되네요 ㅠ

by 마농 [2019.01.16 08:53:05]
WITH t AS
(
SELECT 'a' cd, 100 amt FROM dual
UNION ALL SELECT 'a', 200 FROM dual
UNION ALL SELECT 'a', 150 FROM dual
UNION ALL SELECT 'b', 200 FROM dual
UNION ALL SELECT 'b', 150 FROM dual
UNION ALL SELECT 'c', 180 FROM dual
UNION ALL SELECT 'c', 200 FROM dual
)
-- 1. Group By, Decode
SELECT COUNT(DECODE(cd, 'a', 1)) a
     , COUNT(DECODE(cd, 'b', 1)) b
     , COUNT(DECODE(cd, 'c', 1)) c
  FROM t
;
-- 2. Pivot
SELECT *
  FROM t
 PIVOT (COUNT(amt) FOR cd IN ('a' a, 'b' b, 'c' c))
;

 

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