PM 부트캠프 사전캠프 8일차 후기
오늘은 사전캠프에 참석한 팀원들이 적었다.

참가자가 소수인 김에 살짝쿵 고민 이야기를 했었다.
사실 나는 PM이 정말 내가 원하는 길이 맞는지 흔들린다는 고민이 있다. 나만 이런 고민을 하는줄 알았는데 비슷한 고민을 한 팀원이 있어서 '나만 이런 고민을 하는게 아니구나' 하는 생각이 들었다😥
어떻게 될지 모르지만, 기획에 대해 배우고나면 더 성장한 내가 되어 있겠지!
지금까지 내 인생을 돌아보면 쓸모없다 생각했던 경험들도 나에게 다 도움이 되고 있더라. 이번 부트캠프도 언젠간 도움이 될거라 생각하며 오늘 하루도 나에게 주어진 공부를 열심히 해봐야겠다🔥
SQL 공부 6일차
◆ IF
- 조건을 만들 때 사용하는 함수
사용 방법
if(조건, 조건을 충족할 때, 조건을 충족하지 못할 때)
실습1
만약에 음식 타입이 'Korean'일 때는 '한식', 'Korean'이 아닌 경우에는 '기타'라고 해줘
select restaurant_name,
cuisine_type "원래 음식 타입",
if(cuisine_type='Korean', '한식', '기타') "음식 타입"
from food_orders
실습2
만약에 주소가 평택군에 해당될 때, '문곡리'를 '문가리'로 바꿔줘
select addr "원래 주소",
if(addr like '%평택군%', replace(addr, '문곡리', '문가리'), addr) "바뀐 주소"
from food_orders
where addr like '%문곡리%'

실습3
잘못된 이메일 주소인 'mail.com'을 'gmail.com'으로 수정하기
(gmail.com에는 @가 없어서 이런 문제가 발생함)

select substring(if(email like '%gmail%', replace(email, 'gmail', '@gmail'), email), 10) "이메일 도메인",
count(customer_id) "고객 수",
avg(age) "평균 연령"
from customers
group by 1

◆ Case when
- 조건을 여러가지로 지정하고 싶을 때 쓰는 함수로, 조건별로 적용할 값을 지정해 줄 수 있습니다.
사용 방법
case when 조건1 then 값(수식)1
when 조건2 then 값(수식)2
else 값(수식)3
end
실습1
음식타입이 'Korean'일 때는 '한식', 'Japanese' 또는 'Chinese'일 때는 '아시아', 그 외에는 '기타'라고 지정해줘.
select case when cuisine_type='Korean' then '한식'
when cuisine_type in ('Japanese', 'Chinese') then '아시아'
else '기타' end "음식타입",
cuisine_type
from food_orders

실습2
음식 단가를 주문 수량이 1일때는 음식 가격, 주문 수량이 2 이상일때는 음식가격 나누기 주문 수량으로(음식가격/주문수량) 나타내줘.
select order_id,
price,
quantity,
case when quantity=1 then price
when quantity>=2 then price/quantity end "음식 단가"
from food_orders
조건에 부합하지 않는 경우가 없는 경우에 else를 생략해도 괜찮다.

◆ 조건문을 사용할 수 있는 경우
- 새로운 카테고리 만들기
음식 타입과 같이 새로운 카테고리를 만들 수 있습니다.
한국 음식, 아시아 음식, 미국 음식, 유럽 음식 이런 식의 새로운 cuisine_category 를 생성 가능
- 고객들의 분류도 만들기
10대 여성, 10대 남성, 20대 여성, 20대 남성 등, 이런 식의 성별과 나이별로 새로운 고객 군 카테고리를 생성 가능
- 연산식을 적용할 조건 지정
수수료를 계산할 때 흔히 현금 사용, 카드사용을 나눔
현금일 때의 수수료율과 카드일 때의 수수료율이 다르다면, 연산식을 만들 때 if 문 혹은 case 문으로 각각 다른 수수료율 혹은 수수료 계산 방식을 적용 가능
- 다른 문법 안에서 적용하기
if, case 문 안에 다른 문법이나 연산을 넣을 수도 있지만, 다른 문법 안에 조건문을 넣을 수도 있음
예) concat 문으로 여러 컬럼을 합칠 때, rating 이 있을 때는 rating 을 넣어주고 없을 때는 아무것도 넣지 않도록, concat 안에 if 문을 넣어줄 수 있음
'PM 부트캠프' 카테고리의 다른 글
| [PM 부트캠프 - 사전캠프 10일차 후기] (0) | 2025.06.12 |
|---|---|
| [PM 부트캠프 - 사전캠프 9일차 후기] (7) | 2025.06.12 |
| [PM 부트캠프 - 사전캠프 7일차 후기] (2) | 2025.06.10 |
| [PM 부트캠프 - 사전캠프 6일차 후기] (0) | 2025.06.04 |
| [PM 부트캠프 - 사전캠프 5일차 후기] (0) | 2025.05.30 |