
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
두번째 실습 문제
select age,
max(if(gender='male', order_count, 0)) male,
max(if(gender='female', order_count, 0)) female
from
(
select b.gender,
case when age between 10 and 19 then 10
when age between 20 and 29 then 20
when age between 30 and 39 then 30
when age between 40 and 49 then 40
when age between 50 and 59 then 50 end age,
count(1) order_count
from food_orders a inner join customers b on a.customer_id=b.customer_id
where b.age between 10 and 59
group by 1, 2
) t
group by 1
order by 1 desc
----------------------------------------------------------------------------------------------------------------------------------------------
이 쿼리에서 저는 선생님처럼 콜럼을 숫자로 간단히 적지 않고 복습을 위해 컬럼 명을 다 적고 있는데요.
선생님께서 group by 1, 2로 하신 부분 중
여기서 그중 1 = age별로 분류한 건 알겠는데
2를 어떤 컬럼명으로 다 적어야 같은 결과값이 도출되는지 모르겠습니다.
2 대신에 case when age between 10 and 19 then 10
when age between 20 and 29 then 20
when age between 30 and 39 then 30
when age between 40 and 49 then 40
when age between 50 and 59 then 50 end age
라고 쿼리를 입력하니 결과 산출이 안돼서요.
