
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
5주차 숙제 중
SELECT
f. cuisine_type,
MAX(IF(a.연령 = '10대', a.cnt_order, 0)) "10대",
MAX(IF(a.연령 = '20대', a.cnt_order, 0)) "20대",
MAX(IF(a.연령 = '30대', a.cnt_order, 0)) "30대",
MAX(IF(a.연령 = '40대', a.cnt_order, 0)) "40대",
MAX(IF(a.연령 = '50대', a.cnt_order, 0)) "50대"
FROM (
SELECT
f.cuisine_type,
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대'
WHEN c.age BETWEEN 50 AND 59 THEN '50대'
ELSE '기타'
END as 연령,
COUNT(1) cnt_order
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, 연령
) a
GROUP BY 1
위 코드로 계속 오류가 났는데, f.cuisine_type이 존재하지 않는 다고 합니다.
그래서 주 쿼리의 select 문에서 f.cuisine_type 이 아닌 cuisine_type을 입력했더니 제대로 실행되었습니다.
이 차이가 뭘까요, 강의 들었을 때는 f.를 붙여줘서 기존 데이터 테이블을 확인해줘야한다고 했던 것 같은데요 ㅠㅠ

작성한 코드 및 에러 메세지
<SELECT
cuisine_type,
MAX(IF(a.연령 = '10대', a.cnt_order, 0)) "10대",
MAX(IF(a.연령 = '20대', a.cnt_order, 0)) "20대",
MAX(IF(a.연령 = '30대', a.cnt_order, 0)) "30대",
MAX(IF(a.연령 = '40대', a.cnt_order, 0)) "40대",
MAX(IF(a.연령 = '50대', a.cnt_order, 0)) "50대"
FROM (
SELECT
f.cuisine_type,
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대'
WHEN c.age BETWEEN 50 AND 59 THEN '50대'
ELSE '기타'
END as 연령,
COUNT(1) cnt_order
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, 연령
) a
GROUP BY 1
>
