Search

2015년 10월 26일 월요일

[Database] [MSSQL] CASE문을 활용해 특정 값들 Count 구하기

* 먼저 다음과 같은 값을 가지고 있는 A_Table이 있다고 생각해보자.












* 사과, 감, 포도는 '과일'로, 자동차, 오토바이는 '탈것'으로 분류 한다고 생각해보자.
* 우선 Column_03을 만들어서 분류하는 방법은 다음과 같다.

SELECT *,
 CASE WHEN Column_01 in ('감', '사과', '포도') THEN '과일'
 WHEN Column_01 in ('자동차', '오토바이') THEN '탈것'
 END Column_3
FROM A_Table













* 분류한 Column_03를 이용해 Row로 Count 해보자.

SELECT t.Column_3, COUNT(*) Counting
FROM (SELECT *,
  CASE WHEN Column_01 in ('감', '사과', '포도') THEN '과일'
  WHEN Column_01 in ('자동차', '오토바이') THEN '탈것'
  ELSE '기타'
  END Column_3
 FROM A_Table
 ) AS t
GROUP BY Column_3







* 반대로, Column으로 Count 하려면?
* 마찬가지로 CASE문을 활용하면 해결할 수 있다.

SELECT 
 COUNT(CASE WHEN Column_01 in ('감', '사과', '포도') THEN 1 END) 과일,
 COUNT(CASE WHEN Column_01 in ('자동차', '오토바이') THEN 1 END) 탈것
FROM A_Table






* Count 뿐만 아니라 Sum도 위와 같은 방법을 사용하면 된다.


댓글 없음:

댓글 쓰기