일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- git #gitlab #github
- zepettoworld.com
- Component
- layout #thymeleaf #화면분할
- Bean
- DispatcherServlet
- 스프링
- 오토와이어드
- spring
- autowired
- 스프링 부트
- 1
- Today
- Total
기록과 정리
SQL 조건문 - CASE 본문
이 글은 '[백문이불여일타] 데이터 분석을 위한 중급 SQL' 강의를 참고하였습니다.
[백문이불여일타] 데이터 분석을 위한 기초 SQL - 인프런 | 학습 페이지
지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....
www.inflearn.com
sql에서도 if 와 같은 분기 처리할 수 있는데 그중 case문을 정리해보도록 한다.
CASE
해당 테이블에 카테고리 ID에 따라서 분기를 해주는 작업을 해주고 싶다. 예를 들어 1이면 음료, 2이면 조미료, 그 외에는 기타로 출력을 하고 싶다고 하면 다음과 같이 쿼리를 작성한다.
CASE
WHEN 조건 1 THEN 결과 1
.....
END
case문 외에 컬럼과 case문에 alias를 넣어주면 더욱 깔끔하게 쿼리를 조회 가능하다.
case문 안에는 논리연산자를 넣을 수 있어 , or나 and로 데이터를 더 묶어서 분기를 줄 수 있다.
응용을 해보면 , 전체 카테고리 평균이 궁금하기보다 몇몇 칼럼의 평균이 궁금하다고 하면 어떻게 할까?
몇몇 컬럼에 대해 조건별로 case를 만들어주고, group by 시켜주어 평균을 구하는 게 답이 된다.
case문을 잘 이용하면 pivoting 이 가능한데, pivoting이란 테이블을 방향을 뒤집은 것(?)이라고 생각하면 쉽다.
categoryid = 1인 경우 price를 출력하게 하는 category1_price라는 칼럼을 생성할 수 있다.
categoryid =1 ,2, 3 각각의 경우 평균값을 피보팅 시켜보자.
'IT > DB' 카테고리의 다른 글
SQL-UNION, UNION ALL (0) | 2021.09.01 |
---|---|
SQL-JOIN (0) | 2021.09.01 |
데이터 요약 GROUP BY & HAVING (0) | 2021.08.22 |
집계함수(COUNT/SUM/AVG/MIN/MAX) (0) | 2021.08.22 |
데이터 꺼내오기 (ORDER BY / SUBSTR,RIGTH,LEFT - 문자열자르기 / ROUND/CEIL/FLOOR - 소수점) (0) | 2021.08.16 |