프로그래머스 사이트 링크
문제
코드
ver(1) - JOIN 사용
-- FIRST_HALF와 ICECREAM_INFO 테이블에서 FLAVOR 컬럼이 같은 데이터를 합친다.
SELECT A.FLAVOR
-- FIRST_HALF 테이블을 A라는 별칭으로 사용하고, FLAVOR 컬럼을 선택한다.
FROM FIRST_HALF AS A
-- ICECREAM_INFO 테이블을 B라는 별칭으로 사용하고, FLAVOR 컬럼이 같은 데이터를 합친다.
JOIN ICECREAM_INFO AS B
ON A.FLAVOR = B.FLAVOR
-- A.TOTAL_ORDER가 3000보다 크고, B.INGREDIENT_TYPE이 "fruit"로 시작하는 데이터만 선택한다.
WHERE A.TOTAL_ORDER > 3000 AND B.INGREDIENT_TYPE LIKE "fruit%"
-- A.TOTAL_ORDER를 내림차순으로 정렬한다.
ORDER BY A.TOTAL_ORDER DESC
ver(2) - 서브쿼리 사용
-- FIRST_HALF 테이블에서 FLAVOR 컬럼과 TOTAL_ORDER 컬럼을 가져온다.
-- ICECREAM_INFO 테이블에서 FLAVOR 컬럼과 INGREDIENT_TYPE 컬럼을 가져온다.
-- FLAVOR 컬럼을 기준으로 INNER JOIN 한다.
SELECT A.FLAVOR
-- FIRST_HALF 테이블에서 가져온 TOTAL_ORDER 컬럼의 값이 3000보다 큰 경우만 가져온다.
FROM FIRST_HALF AS A
WHERE A.TOTAL_ORDER > 3000
-- ICECREAM_INFO 테이블에서 가져온 INGREDIENT_TYPE 컬럼의 값이 'fruit'로 시작하는 경우만 가져온다.
AND A.FLAVOR IN (
SELECT FLAVOR FROM ICECREAM_INFO WHERE INGREDIENT_TYPE LIKE 'fruit%'
)
-- TOTAL_ORDER 컬럼을 기준으로 내림차순 정렬한다.
ORDER BY A.TOTAL_ORDER DESC;
ver(3)
SELECT FIRST_HALF.FLAVOR
FROM FIRST_HALF, ICECREAM_INFO
WHERE FIRST_HALF.FLAVOR = ICECREAM_INFO.FLAVOR AND FIRST_HALF.TOTAL_ORDER > 3000 AND ICECREAM_INFO.INGREDIENT_TYPE = 'fruit_based'
ORDER BY TOTAL_ORDER DESC
댓글남기기