레벨 3의 문제다. 음식 종류별로 즐겨찾기 수가 가장많은 식당을 뽑아야하는데 보자마자 생각난게 MAX 함수이다. MAX 함수로 FAVORITES의 최대 숫자를 구하고 FOOT_TYPE 하고 그룹 해주면은 답을 얻을 수 있다고 생각했고 원래 IN 문법은 하나의 종류만 가지고 올 줄 알았는데 여러개 값도 가능하단것을 오늘 배웠다.
-- 코드를 입력하세요
SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES
FROM REST_INFO
WHERE (FOOD_TYPE,FAVORITES) IN
(SELECT FOOD_TYPE, MAX(FAVORITES)
FROM REST_INFO
GROUP BY FOOD_TYPE)
ORDER BY FOOD_TYPE DESC
혼자 푸는게 가능해지는거 같아서 기쁘다. OUT_DATE 는 꼭 DATE_FORMAT 으로 바꿔줘야하는데 까먹어서 이상하게 오류가 났는데 이번에는 CASE WHEN THEN ELSE END 를 잘 사용한거같다. 항상 SQL을 쓰는 문법이 헷갈리는데 이 부분은 좀 더 보안해야겠다.
-- 코드를 입력하세요
SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE,'%Y-%m-%d'),
CASE
WHEN OUT_DATE <= '2022-05-01' THEN "출고완료"
WHEN OUT_DATE IS NULL THEN "출고미정"
ELSE "출고대기"
END as '출고여부'
FROM FOOD_ORDER
ORDER BY ORDER_ID ASC