[SQL] 20240221

김예지·2024년 2월 21일

SQL 풀이

목록 보기
22/26
post-thumbnail

*프로그래머스 SQL 문제 풀이입니다.


문제 1: 주문량이 많은 아이스크림들 조회하기

📃 문제 1 링크

7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값이 큰 순서대로 상위 3개의 맛을 조회하는 SQL 문을 작성해주세요.

🔎 풀이 포인트

  • 조건: 7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값이 큰 순서대로 상위 3개의 맛
  • OUTPUT COLUMNS: FLAVOR

제출 답안

SELECT FLAVOR
FROM (SELECT B.FLAVOR
	FROM FIRST_HALF A INNER JOIN (SELECT FLAVOR, SUM(TOTAL_ORDER) 
    							FROM JULY
                                GROUP BY FLAVOR) B
    ON A.FLAVOR = B.FLAVOR
    ORDER BY (A.TOTAL_ORDER + B.TOTAL_ORDER) DESC)
WHERE ROWNUM <= 3;

문제 2: 취소되지 않은 진료 예약 조회하기

📃 문제 2 링크

PATIENT, DOCTOR 그리고 APPOINTMENT 테이블에서 2022년 4월 13일 취소되지 않은 흉부외과(CS) 진료 예약 내역을 조회하는 SQL문을 작성해주세요. 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 항목이 출력되도록 작성해주세요. 결과는 진료예약일시를 기준으로 오름차순 정렬해주세요.

🔎 풀이 포인트

  • 조건: 2022년 4월 13일 취소되지 않은 흉부외과(CS) 진료 예약 내역 조회
  • 정렬: 진료예약일시 기준 오름차순
  • OUTPUT COLUMNS: 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시

제출 답안

SELECT A.APNT_NO, B.PT_NAME, A.PT_NO, A.MCDP_CD, C.DR_NAME, A.APNT_YMD
FROM APPOINTMENT A, PATIENT B, DOCTOR C
WHERE A.PT_NO = B.PT_NO
    AND A.MDDR_ID = C.DR_ID
    AND TO_CHAR(A.APNT_YMD,'YYYYMMDD') = '20220413'
    AND A.MCDP_CD = 'CS'
    AND A.APNT_CNCL_YN = 'N'
ORDER BY A.APNT_YMD;

문제 3: 헤비 유저가 소유한 장소

📃 문제 3 링크

이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부릅니다. 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성해주세요.

🔎 풀이 포인트

  • 조건: 헤비 유저가 등록한 공간의 정보
  • 정렬: 아이디 기준 오름차순
  • OUTPUT COLUMNS: ID, NAME, HOST_ID

제출 답안

SELECT *
FROM PLACES
WHERE HOST_ID IN (SELECT HOST_ID
				FROM PLACES
                GROUP BY HOST_ID
                HAVING COUNT(*) >= 2)
ORDER BY ID; 
profile
넓고 얕게? 좁고 깊게?

0개의 댓글