본문 바로가기

전체 글

(17)
250428 프로그래머스 취소되지 않은 진료 예약 조회하기 [문제]PATIENT, DOCTOR 그리고 APPOINTMENT 테이블에서 2022년 4월 13일 취소되지 않은 흉부외과(CS) 진료 예약 내역을 조회하는 SQL문을 작성해주세요. 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 항목이 출력되도록 작성해주세요. 결과는 진료예약일시를 기준으로 오름차순 정렬해주세요. [풀이]1) APNT_NO, PT_NAME, PT_NO, MCDP_CD, DR_NAME, APNT_YMD 조회2) 진료예약(APPOINTMENT) 테이블 기준으로 PATIENT, DOCTOR 테이블과 각각 조인3) APPOINTMENT 테이블의 진료예약내역은 'N', 진료예약일시는 2022년 4월 13일, 흉부외과 진료는 MCDP_CD 컬럼을 통해 'CS' 조건 걸기 ..
250424 프로그래머스 주문량이 많은 아이스크림들 조회하기 [문제]7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값이 큰 순서대로 상위 3개의 맛을 조회하는 SQL 문을 작성해주세요. [풀이]1) FLAVOR 조회2) FIRST_HALF와 JULY 테이블을 조인3) JULY 테이블은 FLAVOR별로 주문량을 SUM()하여 집계한 뒤 조인4) 조인 조건은 FLAVOR (7월은 주문량이 많아 같은 아이스크림에 대해 서로 다른 두 공장에서 아이스크림 가게로 출하할 수 있는 경우가 있다는 제한이 있다.)5) 상반기 아이스크림(FIRST_HALF)과 7월(JULY) 아이스크림 총 주문량의 합을 기준으로 내림차순 정렬6) 상위 3개만 조회 [오답 분석]1) FROM절에서 JOINFROM (SELECT TOTAL_ORDER FROM FIRST_HAL..
250423 프로그래머스 서울에 위치한 식당 목록 출력하기 [문제]REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성해주세요. 이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 해주시고 결과는 평균점수를 기준으로 내림차순 정렬해주시고, 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬해주세요. [풀이]1) REST_ID, REST_NAME, FOOD_TYPE, FAVORITES, ADDRESS, SCORE 조회2) REST_INFO 테이블과 REST_REVIEW 테이블 조인3) 리뷰 점수 - 평균(AVG()), 소수점(ROUND()) 함수 사용4) 식당마다 리뷰 여러개 존재하므로, 식당ID 별로 그룹화하여 리뷰 평균점수 출력하기5) ..
250413 프로그래머스 5월 식품들의 총매출 조회하기 [문제]FOOD_PRODUCT와 FOOD_ORDER 테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성해주세요. 이때 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬해주세요. [풀이]1) FOOD_PRODUCT 테이블과 FOOD_ORDER 테이블 PRODUCT_ID를 기준으로 조인2) 2022년 5월에 생산된 식품들이므로 WHERE절에 조건 추가, 이때 현재 PRODUCE_DATE 타입은 시간까지 나오므로 연도와 월까지만 포맷해 준다.3) PRODUCT_ID, PRODUCT_NAME, TOTAL_SALES 조회4) 이때, 총매출 기준은 PRODUCT_ID 또는 PRODUCT_NAME으로 그룹화5) 총..
250410 프로그래머스 조건별로 분류하여 주문상태 출력하기 [문제]FOOD_ORDER 테이블에서 2022년 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 출고여부를 조회하는 SQL문을 작성해주세요. 출고여부는 2022년 5월 1일까지 출고완료로 이 후 날짜는 출고 대기로 미정이면 출고미정으로 출력해주시고, 결과는 주문 ID를 기준으로 오름차순 정렬해주세요. [풀이]1) ORDER_ID, PRODUCT_ID, OUT_DATE, 출고여부 조회2) 현재 OUT_DATE는 시간까지 다 나오는 형식이므로, 예시 출력에 맞게 형식 바꿔주기 - DATE_FORMAT()3) 출고여부 - OUT_DATE가 2022년 5월 1일 포함 이전 날짜면 '출고완료', 이후면 '출고대기', 값이 NULL이면 출고미정으로 생성4) 주문ID 기준으로 오름차순 정렬하기 [정답]SEL..
250408 프로그래머스 없어진 기록 찾기 [문제] 천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요.  [풀이]1) 동물ID, 이름 조회2) 입양 간 기록이 있다고 했으니, ANIMAL_OUTS 테이블 기준으로 JOIN3) OUTS 테이블에는 ID가 있는데, INS에 없는 경우 ANIMAL_INS의 ANIMAL_ID는 NULL로 뜨게 된다.    WHERE절을 이용해 조건 추가4) ID순으로 조회 (=오름차순) [오답 분석하기]1) SELECT 조회 시, 테이블명 잘못 지정SELECT AI.ANIMAL_ID, AI.NAMEFROM ANIMAL_INS AI RIGHT JOIN ANIMAL_OUTS AO ..** ANIMAL_OU..
250406 프로그래머스 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 [문제] CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 2022년 10월 16일에 대여 중인 자동차인 경우 '대여중' 이라고 표시하고, 대여 중이지 않은 자동차인 경우 '대여 가능'을 표시하는 컬럼(컬럼명: AVAILABILITY)을 추가하여 자동차 ID와 AVAILABILITY 리스트를 출력하는 SQL문을 작성해주세요. 이때 반납 날짜가 2022년 10월 16일인 경우에도 '대여중'으로 표시해주시고 결과는 자동차 ID를 기준으로 내림차순 정렬해주세요.  [풀이]1) 자동차 ID(CAR_ID), 대여 여부 표시(AVAILABILITY) 조회2) CASE~WHEN 절 이용해서 대여 여부 조건 추가하기3) 입양 기록이 없는 동물 WHERE절에서 필터링4) 자동차 ID 기준으로 내림차..
250405 프로그래머스 오랜 기간 보호한 동물(1) [문제]아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다. [풀이]1) 동물 이름(NAME), 보호 시작일(DATETIME) 조회2) 테이블 JOIN (ANIMAL_INS, ANIMAL, OUTS)3) 입양 기록이 없는 동물 WHERE절에서 필터링4) 보호 시작일 기준으로 정렬하기5) 가장 오래 보호 중인 3마리 선택 - LIMIT [오답 분석하기]1) JOIN, NOT IN 조건 사용 오류SELECT ...FROM ANIMAL_INS AI JOIN ANIMAL_OUTS AOON AI.ANIMAL_ID = AO.ANIMAL_IDWHERE AI.ANIMAL_ID NOT IN AO.A..