SELECT restaurant_name,
avg_price,
case when (avg_price<=5000) then 'price_group1'
when (avg_price<=10000 and avg_price>5000) then 'price_group2'
when (avg_price>10000 and avg_price<=30000) then 'price_group3'
else 'price_group4' end price_group,
case when avg_age<30 then 'age_group1'
when (avg_age>=30 and avg_age<40) then 'age_group2'
when (avg_age>40 and avg_age<50) THEN 'age_group3'
else 'age_group4' end age_group
FROM
(select f.restaurant_name,
avg(f.price) avg_price,
avg(c.age) avg_age
from food_orders f inner join customers c on f.customer_id =c.customer_id
group by 1)a
group by 1
order by 1
select a.order_id,
a.customer_id,
a.restaurant_name,
a.price,
b.name,
b.age,
coalesce(b.age,20) "null 제거",
b.gender
from food_orders a left join customers b on a.customer_id =b.customer_id
where b.age is null
coalesce(,) null을 대체할때 사용,
join ~ on 두개?의 테이블에서 공통된 컬럼을 기준으로 새로운 테이블을 만들 경우 사용
pivat if문으로 여러개의 컬럼으로 나눠서 표현하는 것 - if문 앞에 max를 붙인다 why ? 개인적인 의견으로는 위에서부터 차례대로 if문이 입력되는데 맨 마지막?까지 다 입력되고 나서 표현되는 숫자만 맞으므로 그런듯?
'TIL' 카테고리의 다른 글
| 사전캠프 11일차 (4) | 2024.11.04 |
|---|---|
| 사전캠프 10일차 (0) | 2024.11.01 |
| 사전캠프 8일차 왜 틀렸을까 (1) | 2024.10.30 |
| 사전캠프 7일차(화요일) (1) | 2024.10.29 |
| 사전캠프 6일차 (0) | 2024.10.28 |