1.Subquery : 여러번의 연산 진행, Query 안에 sub 로 들어간 구문
ex)
select order_id, restaurant_name, if(over_time>=0, over_time, 0) over_time
from
(
select order_id, restaurant_name, food_preparation_time-25 over_time
from food_orders
) a
2.JOIN : 서로 다른 테이블에 있는 데이터 조회하기
ex)
-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.공통컬럼명
<문제>
Q : 식당별 평균 음식 주문 금액과 주문자의 평균 연령을 기반으로 Segmentation 하기
- 평균 음식 주문 금액 기준 : 5,000 이하 / ~10,000 / ~30,000 / 30,000 초과
- 평균 연령 : ~ 20대 / 30대 / 40대 / 50대 이상
A :
SELECT restaurant_name,
case when pp<=5000 then 'group1'
when pp>5000 and pp<=10000 then 'group2'
when pp>10000 and pp<=30000 then 'group3'
when pp>30000 then 'group4' end "평균주문금액그룹",
case when aa<=29 then '20대'
when aa BETWEEN 30 and 39 then '30대'
when aa BETWEEN 40 and 49 then '40대'
else '50대' end "평균연령그룹"
FROM
(
SELECT f.restaurant_name,
f.price,
c.age,
avg(f.price) pp,
avg(c.age) aa
FROM food_orders f inner join customers c on f.customer_id=c.customer_id
GROUP by 1
) a
ORDER by 1
'개발 > 부트캠프' 카테고리의 다른 글
사전캠프 Spring 퀘스트 1 (0) | 2024.12.05 |
---|---|
사전캠프 : SQL 5_완강 (1) | 2024.11.26 |
사전캠프 : SQL 3 (0) | 2024.11.21 |
사전캠프 : SQL 2 (1) | 2024.11.20 |
사전캠프 : SQL 1 (2) | 2024.11.19 |