이번주는 집중학습시간인 월요일에 와다다 듣지 못하고,
화요일에 조금, 수요일에 조금, 목요일에 조금, 금요일에 조금 들어서
week3 진도를 나갔다.
집중학습시간 타이틀이 없어져서일까요....
좀처럼 집중하지 못한 한주였네요~
집중을 하지 않아서 블로그를 안쓴건지
블로그를 안써서 집중을 못한건지 모르겠지만
이번주는 전부 들은 후 블로그에 적기
CASE와 WHEN을 이용해 조건문을 만들 수 있다.
CASE 
	WHEN 조건 THEN 어쩌구 ELSE 저쩌구 
END
CASE 뒤에는 조건을 써준다.
THEN 뒤에 있는 '어쩌구'를 출력ELSE 뒤에 있는 '저쩌구'를 출력CASE 문이 끝나면 END로 마무리한다.CASE 문은 조건을 여러개 쓸 수 있다.
파이썬의 ELIF와 같다.
1번 조건에 해당하는지보고, 해당하지 않는 것만 2번 조건에서 확인한다.
그래서 순서가 중요하다!
CASE
    WHEN 1번 조건 THEN 1
    WHEN 2번 조건 THEN 2
    ELSE 3
END
IF(조건, 어쩌구, 저쩌구)
IF문 뒤에는 괄호를 치고 
CASE문 처럼 조건을 여러개 적을 수 없고 딱 한 가지 조건만 쓸 수 있다.CASE문과 IF문은 섞어서 쓸 수 있다.
엑셀 피봇테이블과 같은 기능으로 행 방향 테이블을 열 방향으로도 볼 수 있다.
CASE를 이용해 보고 싶은 카테고리를 출력하고,
GROUP BY를 이용해 집계한다.
| 지역 | 카테고리 | 값 | 
|---|---|---|
| 서울 | 식당 | 3 | 
| 대전 | 카페 | 2 | 
| 서울 | 카페 | 1 | 
이렇게 생긴 데이터를 피봇하면 아래와 같은 테이블이 만들어진다.
| 식당 | 카페 | |
|---|---|---|
| 서울 | 3 | 1 | 
| 대전 | 0 | 2 | 
코드는 아래와 같다 (id 컬럼이 있다고 하자)
SELECT 지역
	, COUNT(DISTINCT CASE WHEN 카테고리 = 식당 THEN id END AS 식당id)
    , COUNT(DISTINCT CASE WHEN 카테고리 = 카페 THEN id END AS 카페id)
FROM table
GROUP BY 지역
DISTINCT를 해주는 이유는 강의를 봤는데도 아직 100퍼센트 이해는 안된다. 왤까.. 내일 다시 봐야겠다.