🤔 문제
다음은 아이스크림 가게의 상반기 주문 정보를 담은 `FIRST_HALF` 테이블과 아이스크림 성분에 대한 정보를 담은 `ICECREAM_INFO` 테이블입니다. `FIRST_HALF` 테이블 구조는 다음과 같으며, `SHIPMENT_ID`, `FLAVOR`, `TOTAL_ORDER`는 각각 아이스크림 공장에서 아이스크림 가게까지의 출하 번호, 아이스크림 맛, 상반기 아이스크림 총주문량을 나타냅니다. `FIRST_HALF` 테이블의 기본 키는 `FLAVOR` 입니다.

`ICECREAM_INFO` 테이블 구조는 다음과 같으며, `FLAVOR`, `INGREDIENT_TYPE`은 각각 아이스크림 맛, 아이스크림의 성분 타입을 나타냅니다. `INGREDIENT_TYPE`에는 아이스크림의 주 성분이 설탕이면 `sugar_based`라고 입력되고, 아이스크림의 주 성분이 과일이면 `fruit_based`라고 입력됩니다.
`ICECREAM_INFO`의 기본 키는 `FLAVOR` 입니다. `ICECREAM_INFO`테이블의 `FLAVOR`는 `FIRST_HALF`테이블의 `FLAVOR`의 외래 키 입니다.

상반기 아이스크림 총 주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총 주문량이 큰 순서대로 조회하는 SQL문을 작성해주세요.
예시
예를 들어 `FIRST_HALF` 테이블이 다음과 같고

`ICECREAM_INFO` 테이블이 다음과 같다면

상반기 아이스크림 총주문량이 3,000보다 높은 아이스크림 맛은 chocolate, strawberry, melon, white_chocolate입니다. 이 중에 아이스크림의 주 성분이 과일인 아이스크림 맛은 strawberry와 melon이고 총 주문량이 큰 순서대로 아이스크림 맛을 조회하면 melon, strawberry 순으로 조회되어야 합니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.

💻 나의 풀이
SELECT F.FLAVOR
FROM FIRST_HALF F
INNER JOIN ICECREAM_INFO I ON F.FLAVOR = I.FLAVOR
WHERE F.TOTAL_ORDER > 3000
AND I.INGREDIENT_TYPE = 'fruit_based'
ORDER BY F.TOTAL_ORDER DESC;
결과


질문
Q. PK를 공유하고 있는 두개의 테이블에서 해당 PK를 SELECT할 경우에,
SELECT문에서도 `별칭.컬럼명` 으로 반드시 써야하는 건가요?
어짜피 동일한 컬럼명인데 별칭을 쓰지 않으면 안되는건가요?
만약에 써야하면 FROM절에 있는 베이스 테이블을 써야하는지, JOIN절 이후에 있는 조인 테이블을 써야하는지 궁금합니다.
혹시 이 글을 보신 전문가분들 답변해주세요!

'취업준비 > 코딩테스트 문제 풀이' 카테고리의 다른 글
[프로그래머스 SQL 고득점 Kit] SELECT - 강원도에 위치한 생산공장 목록 출력하기 (0) | 2024.03.29 |
---|---|
[프로그래머스 SQL 고득점 Kit] SELECT - 인기있는 아이스크림 (0) | 2024.03.28 |
[프로그래머스 SQL 고득점 Kit] SELECT - 조건에 맞는 도서 리스트 출력하기 (0) | 2024.03.28 |
[프로그래머스 SQL 고득점 Kit] SELECT - 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2024.03.28 |
[프로그래머스 SQL 고득점 Kit] SELECT - 12세 이하인 여자 환자 목록 출력하기 (1) | 2024.03.28 |
🤔 문제
다음은 아이스크림 가게의 상반기 주문 정보를 담은 FIRST_HALF
테이블과 아이스크림 성분에 대한 정보를 담은 ICECREAM_INFO
테이블입니다. FIRST_HALF
테이블 구조는 다음과 같으며, SHIPMENT_ID
, FLAVOR
, TOTAL_ORDER
는 각각 아이스크림 공장에서 아이스크림 가게까지의 출하 번호, 아이스크림 맛, 상반기 아이스크림 총주문량을 나타냅니다. FIRST_HALF
테이블의 기본 키는 FLAVOR
입니다.

ICECREAM_INFO
테이블 구조는 다음과 같으며, FLAVOR
, INGREDIENT_TYPE
은 각각 아이스크림 맛, 아이스크림의 성분 타입을 나타냅니다. INGREDIENT_TYPE
에는 아이스크림의 주 성분이 설탕이면 sugar_based
라고 입력되고, 아이스크림의 주 성분이 과일이면 fruit_based
라고 입력됩니다.
ICECREAM_INFO
의 기본 키는 FLAVOR
입니다. ICECREAM_INFO
테이블의 FLAVOR
는 FIRST_HALF
테이블의 FLAVOR
의 외래 키 입니다.

상반기 아이스크림 총 주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총 주문량이 큰 순서대로 조회하는 SQL문을 작성해주세요.
예시
예를 들어 FIRST_HALF
테이블이 다음과 같고

ICECREAM_INFO
테이블이 다음과 같다면

상반기 아이스크림 총주문량이 3,000보다 높은 아이스크림 맛은 chocolate, strawberry, melon, white_chocolate입니다. 이 중에 아이스크림의 주 성분이 과일인 아이스크림 맛은 strawberry와 melon이고 총 주문량이 큰 순서대로 아이스크림 맛을 조회하면 melon, strawberry 순으로 조회되어야 합니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.

💻 나의 풀이
SELECT F.FLAVOR
FROM FIRST_HALF F
INNER JOIN ICECREAM_INFO I ON F.FLAVOR = I.FLAVOR
WHERE F.TOTAL_ORDER > 3000
AND I.INGREDIENT_TYPE = 'fruit_based'
ORDER BY F.TOTAL_ORDER DESC;
결과


질문
Q. PK를 공유하고 있는 두개의 테이블에서 해당 PK를 SELECT할 경우에,
SELECT문에서도 별칭.컬럼명
으로 반드시 써야하는 건가요?
어짜피 동일한 컬럼명인데 별칭을 쓰지 않으면 안되는건가요?
만약에 써야하면 FROM절에 있는 베이스 테이블을 써야하는지, JOIN절 이후에 있는 조인 테이블을 써야하는지 궁금합니다.
혹시 이 글을 보신 전문가분들 답변해주세요!

'취업준비 > 코딩테스트 문제 풀이' 카테고리의 다른 글
[프로그래머스 SQL 고득점 Kit] SELECT - 강원도에 위치한 생산공장 목록 출력하기 (0) | 2024.03.29 |
---|---|
[프로그래머스 SQL 고득점 Kit] SELECT - 인기있는 아이스크림 (0) | 2024.03.28 |
[프로그래머스 SQL 고득점 Kit] SELECT - 조건에 맞는 도서 리스트 출력하기 (0) | 2024.03.28 |
[프로그래머스 SQL 고득점 Kit] SELECT - 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2024.03.28 |
[프로그래머스 SQL 고득점 Kit] SELECT - 12세 이하인 여자 환자 목록 출력하기 (1) | 2024.03.28 |