[SQL] Programers SELECT 문제 풀이 5,6,7번

juyeon lee·2024년 1월 11일

SQL TEST

목록 보기
5/8

프로그래머스 SQL 고득점 Kit

🖥️SELECT 5번

인기있는 아이스크림


🔹문제
상반기에 판매된 아이스크림의 맛을 총주문량을 기준으로 내림차순 정렬하고 총주문량이 같다면 출하 번호를 기준으로 오름차순 정렬하여 조회하는 SQL 문을 작성해주세요.

🗝️정답

SELECT FLAVOR
FROM FIRST_HALF
ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID ASC;

🖥️SELECT 6번

재구매가 일어난 상품과 회원 리스트 구하기


🔹문제
ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성해주세요. 결과는 회원 ID를 기준으로 오름차순 정렬해주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬해주세요.

🗝️정답

SELECT USER_ID,PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(USER_ID) >= 2
ORDER BY USER_ID ASC, PRODUCT_ID DESC;

💡오답 노트

  1. group by 지정하지 x
    ➡️ 테이블 내에서 동일한 회원이 동일한 상품을 재구매했다면 그룹화하여 조회
    group by로 묶어줬다면 조건절은 where이 아닌 having으로!

🖥️SELECT 7번

흉부외과 또는 일반외과 의사 목록 출력하기


🔹문제
DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.

🗝️정답

SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD,'%Y-%m-%d')
FROM DOCTOR
WHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS'
ORDER BY HIRE_YMD DESC, DR_NAME ASC;

💡오답 노트

  1. 데이터 포맷 지정 x
    ➡️ 문제 제대로 읽기
    DATE_FORMAT함수 개념 및 예시

  2. 고용일자 조회해야 하는데 면허번호 조회함
    ➡️ 테이블 컬럼 설명 잘 확인하기

0개의 댓글