* 수강 강의명: 엑셀보다 쉽고 빠른 SQL - 3주차
[요약]
1. 문자열 가공하는 법 (REPLACE, SUBSTRING, CONCAT + CAST)
- REPLACE : 특정 문자를 다른 것으로 바꿀 수 있는 명령어
└ REPLACE(변경할 칼럼, 현재값, 변경값)
└ ex) 식당명에 blue 표기된 값을 red로 바꾸고 싶다면, REPLACE(restaurant_name, 'Blue', 'Red')
- SUBSTRING : 원하는 문자만 남기는 명령어
└ substr(변경할 칼럼, 시작 위치, 남기고 싶은 음절수) * substring 으로 표기해도 무방
└ ex) 주소에서 '서울' '경기' 등 앞음절 2개만 남기고 싶다면, substr(addr, 1, 2)
- CONCAT : 여러 칼럼을 하나로 합치는 명령어
└ CONCAT(붙이고 싶은 값1, 붙이고 싶은 값2, 붙이고 싶은 값3 .... ) * 칼럼, 한글, 영어, 숫자, 특수문자 기입 가능
└ ex) concat('[', substring(addr, 1, 2), '] ', restaurant_name)
[+] CAST : 데이터 타입을 문자 > 숫자, 숫자 > 문자로 변경할 때 사용하는 명령어
└ 숫자로 변경: CAST (칼럼명 OR 조건절 as decimal)
└ 문자로 변경: CAST (칼럼명 OR 조건절 as char)
(cf) 각 칼럼의 데이터 타입은 하단 노란색 영역과 같이 표기됨
2. IF, CASE 절
- IF : 원하는 조건을 지정해주는 명령어
└ if(원하는 조건, 조건 충족 시 기입될 값, 조건 미충족시 기입될 값)
└ ex) if(cuisine_type='Korean', '한식', '기타')
- CASE : 다수의 조건을 지정할 때 사용하는 명령어. if를 여러 번 쓴 것과 동일한 효과 * if(조건1, 값1, if(조건2, 값2, 값3))
└ case when 조건1 then 값(수식)1
when 조건2 then 값(수식)2
else 값(수식)3
end
└ ex) case when quantity=1 then price
when quantity>=2 then price/quantity end
3. 실습
- 다수의 조건문을 이용해 새로운 카테고리 만들기 - User Segmentation (ex. 성별 연령별 그룹 나누기 등)
- 조건문을 이용해 다른 수식을 적용 (ex. 지역 및 배달 시간에 따른 수수료 계산 등)
[정리]
1) 어떤 문제가 있었나
조건문과 수식을 활용하여 수수료를 계산하는 실습에서 중복되는 수수료를 곱하는 방법이 헷갈림
2) 내가 시도해본 건 무엇인가
결과 값을 통해 필요한 수식을 정리하고 해답에서 대략적인 쿼리 작성 흐름을 파악한 후, 처음부터 혼자 쿼리를 다시 작성해봄
3) 어떻게 해결했나
해답을 통해 case when 구분에 if 절을 추가할 수 있다는 사실을 알았고,
맨처음 작성하던 case when 구문만 활용한 쿼리와
case when + if 를 접목한 쿼리를 모두 적어서 결과 값을 비교하며 조건절의 개념을 다시 잡음
4) 무엇을 새롭게 알았나
- 조건절을 길게 나열하지 않고도, case when 과 if절을 적절히 조합해 간결한 쿼리 작성이 가능함
- REPLACE, CONCAT, CAST 개념을 처음 접해 추가 복습이 필요함
'TIL' 카테고리의 다른 글
[231207] Phython: 기초 개념, 데이터 분석 맛보기 (1) | 2023.12.08 |
---|---|
[231207] SQL: 데이터 가공, pivot table 생성, window function, date 포맷 (2) | 2023.12.07 |
[231206] SQL: Subquery, JOIN (2) | 2023.12.06 |
[231204] SQL: 기본연산/함수, GROUP BY, ORDER BY (0) | 2023.12.04 |
[231201] SQL: SELECT, FROM, WHERE (1) | 2023.12.01 |