본문 바로가기

SQL

SQL 피벗 테이블 ( 드디어!!)

 

 

이게 보니까 결국 max( ) 를 써야 한다는 상황을 알아야 해결이 되더라.

그리고 내가 쓰려는 데이터는 from 테이블에서 조회를 해서 가져와야지 쓸 수 있더라

 

#음식 타입별, 연령별 주문건수

 

SELECT a.cuisine_type '유형',

max(if(generation='10대',cnt_gene, 0)) '10대',

max(if(generation='20대',cnt_gene, 0)) '20대',

max(if(generation='30대',cnt_gene, 0)) '30대',

max(if(generation='40대',cnt_gene, 0)) '40대',

max(if(generation='50대',cnt_gene, 0)) '50대'

FROM

(

SELECT cuisine_type,

age,

case when c.age between 10 and 19 then '10대'

when c.age between 20 and 29 then '20대'

when c.age between 30 and 39 then '30대'

when c.age between 40 and 49 then '40대'

else '50대'

end generation,

count(1) cnt_gene

from food_orders f inner join customers c on f.customer_id =c.customer_id

where c.age between 10 and 59

group by 1,2

) a

group by 1

 

 

'SQL' 카테고리의 다른 글

SQL 1주차 라이브세션 과제 (1~3회) (작성중)  (0) 2024.06.27
SQL 5주차 강의 내용  (0) 2024.05.31
SQL 3주차  (0) 2024.05.27
SQL 2주  (1) 2024.05.23
SQL 1주차  (0) 2024.05.22