1. 오늘의 학습 키워드
- (아티클) 마케터에게 데이터분석이란? 왜 필요할까?
- (강의) 엑셀보다 쉽고 빠른 SQL 4주차
2. 오늘의 학습 내용 정리
1) Subquery, Join 복습하기
👉 Subquery
1. Query 결과를 Query 에 다시 활용하는 것
2. 기본 형식
select column1, special_column from ( /* subquery */ select column1, column2 special_column from table1 ) a
👉 join
1. 두 개 이상의 테이블을 결합하여 사용하는 것
2. JOIN 의 형태에 따라 Left join, Inner join 등이 있음
3. 기본 형식
-- LEFT JOIN select 조회 할 컬럼 from 테이블1 a left join 테이블2 b on a.공통컬럼명=b.공통컬럼명 -- INNER JOIN select 조회 할 컬럼 from 테이블1 a inner join 테이블2 b on a.공통컬럼명=b.공통컬럼명
2) [실습] 50세 이상 고객의 연령에 따라 경로 할인율을 적용하고, 음식 타입별로 원래 가격의 합과 할인 적용 가격의 합을 구하기
- 고객 정보가 없는 경우도 포함하여 조회, 할인 금액이 큰 순서대로 정렬 ➡️ left join 함수 사용
- (조회 컬럼 : 음식 타입, 원래 가격, 할인 적용 가격) *할인 : (나이-50)*0.005
select cuisine_type,
sum(price) sum_price,
sum(price*discount_rate) discounted_price
from
(
select f.cuisine_type,
f.price,
c.age,
(c.age-50)*0.005 discount_rate
from food_orders f left join customers c on f.customer_id=c.customer_id
where c.age>=50
) a
group by 1
order by 3 desc
3. 학습하며 겪었던 문제점 & 에러
[4주차 숙제] 식당별 평균 음식 주문 금액과 주문자의 평균 연령을 기반으로 Segmentation 하기
- 평균 음식 주문 금액 기준 : 5,000 이하 / ~10,000 / ~30,000 / 30,000 초과
- 평균 연령 : ~ 20대 / 30대 / 40대 / 50대 이상
(문제점) 아래의 쿼리 [case when 조건 then] 후에 오는 입력값을 'price_group1' 에서 ' ' 를 넣지 않고 price_group1 로 작성하고 실행하여 계속해서 오류가 있었다. 작성한 쿼리문을 계속 확인을 해보고 해설까지 확인한 후에야 문제가 무엇인지 확인할 수 있었다.
select restaurant_name,
case when avg_price <=5000 then 'price_group1'
when avg_price <=10000 then 'price_group2'
when avg_price <=30000 then 'price_group3'
else 'price_group4' end price_group,
case when avg_age <30 then 'age_group1'
when avg_age between 30 and 39 then 'age_group2'
when avg_age between 40 and 49 then 'age_group3'
else 'age_group4' end age_group
from
(
select f.restaurant_name,
avg(price) avg_price,
avg(age) avg_age
from food_orders f inner join customers c on f.customer_id =c.customer_id
group by 1
) a
order by 1
4. 내일 학습 할 것은 무엇인지
- (강의) 엑셀보다 쉽고 빠른 SQL 5주차
끝.
'내일배움캠프' 카테고리의 다른 글
| [내일배움캠프 사전캠프] '25.07.29(화) / 사전캠프 3주차(2) (3) | 2025.07.29 |
|---|---|
| [내일배움캠프 사전캠프] '25.07.25(금) / 사전캠프 2주차(5) (1) | 2025.07.25 |
| [내일배움캠프 사전캠프] '25.07.24(목) / 사전캠프 2주차(4) (3) | 2025.07.24 |