https://school.programmers.co.kr/learn/courses/30/lessons/133024
아이스크림을 총주문량 기준으로 내림차순 정렬, 출하번호로 오름차순으로 정렬해주는 문제입니다.
아이스크림 맛만 가져오라고 했기때문에, SELECT에서 flavor 컬럼만 지정해줍니다.
SELECT flavor
마지막으로 ORDER BY 절에서 총주문량을 내림차순 해주고, 주문량이 같으면 출하번호로 정렬해주면 정답입니다.
ORDER BY total_order DESC , shipment_id
정답
SELECT flavor
FROM first_half
ORDER BY total_order DESC , shipment_id
https://school.programmers.co.kr/learn/courses/30/lessons/133025
총 주문량이 3.000원보다 높고, 아이스크림의 주 성분이 과일인 아이스크림를 구해 총주문량이 큰 순서대로 구하는 문제입니다!
기본 모든 쿼리를 가져오게 되면 중복 된 FLAVOR 컬럼이 있는 걸 알 수 있습니다. FLAVOR 기준으로 두 가지의 테이블을 조인으로 합쳐 줘야봅니다.
INNER JOIN은 테이블을 연결할 때 제일 많이 사용하는 조인입니다.
INNER는 생략 가능합니다.
FROM FIRST_HALF INNER JOIN ICECREAM_INFO
ON FIRST_HALF.FLAVOR = ICECREAM_INFO.FLAVOR
조인으로 두 가지 테이블을 합쳐주었습니다. 직관적으로 코드를 사용했는데요.
AS로 A , B로 명칭을 사용해 사용 할 수도 있습니다.
FROM FIRST_HALF AS A INNER JOIN ICECREAM_INFO AS B
ON A.FLAVOR = B.FLAVOR
이제 총 주문량이 3.000원보다 높고 아이스크림의 주 성분이 과일인 아이스크림를 구하게 되면 이러한 값이 나옵니다. 조회 했을 때 한 가지의 값만 나옵니다.
WHERE TOTAL_ORDER > 3000 AND INGREDIENT_TYPE = "fruit_based"
두 개 이상의 값이 나오게 되면 ORFER BY 로 정렬를 해줘야 겠지만, 여기서는 값이 하나기 때문에 생략 가능하는 것으로 보입니다.
--> ORDER BY total_order DESC
SELECT 에서 FIRST_HALF 의 FLAVOR 아이스크림 맛 가져오게 되면 정답입니다.
SELECT FIRST_HALF.FLAVOR
FROM FIRST_HALF INNER JOIN ICECREAM_INFO
ON FIRST_HALF.FLAVOR = ICECREAM_INFO.FLAVOR
WHERE TOTAL_ORDER > 3000 AND INGREDIENT_TYPE = "fruit_based"
ORDER BY total_order DESC
AS 사용 코드
SELECT A.FLAVOR
FROM FIRST_HALF AS A INNER JOIN ICECREAM_INFO AS B
ON A.FLAVOR = B.FLAVOR
WHERE TOTAL_ORDER > 3000 AND INGREDIENT_TYPE = "fruit_based"
ORDER BY total_order DESC