목록코드카타 (160)
susinlee 님의 블로그
[문제] PRODUCT 테이블과 OFFLINE_SALE 테이블에서 상품코드 별 매출액(판매가 * 판매량) 합계를 출력하는 SQL문을 작성해주세요. 결과는 매출액을 기준으로 내림차순 정렬해주시고 매출액이 같다면 상품코드를 기준으로 오름차순 정렬해주세요. [단계별 풀이] 1. PRODUCT 테이블과 OFFLINE_SALE 테이블을 PRODUCT_ ID 기준으로 JOIN2. PRODUCT_CODE를 GROUP BY3. PRICE와 SALES_AMOUNT를 곱한 후 해당 컬럼을 SUM 한 뒤 SALES로 별칭4. SALES를 내림차순 정렬, 상품코드를 오름차순 정렬[정답]SELECT P.PRODUCT_CODE, SUM(P.PRICE * S.SALES_AMOUNT) AS SALESFROM PRODUCT..
[문제] 2022년 1월의 카테고리 별 도서 판매량을 합산하고, 카테고리(CATEGORY), 총 판매량(TOTAL_SALES) 리스트를 출력하는 SQL문을 작성해주세요.결과는 카테고리명을 기준으로 오름차순 정렬해주세요. [단계별 풀이] 1. BOOK 테이블과 BOOK_SALES 테이블을 BOOK_ID 기준으로 JOIN2. SALES_DATE가 22년 1월인 행을 필터링3. CATEGORY를 GROUP BY하고 SALES를 SUM 한뒤 TOTAL_SALES로 지정4. CATEGORY 기준으로 오름차순 정렬 [정답]SELECT B.CATEGORY, SUM(S.SALES) AS TOTAL_SALESFROM BOOK BJOIN BOOK_SALES SON B.BOOK_ID = S.BOOK_IDWHERE..
[문제] 아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다. [단계별 풀이] 1. ANIMAL_INS (I)테이블과 ANIMAL_OUTS (O)테이블을 ANIMAL_ID을 기준으로 LEFT JOIN2. OUTS 테이블의 ANIMAL_ID가 NULL 행만 필터링3. INS 테이블의 이름, 보호 시작일을 선택4. INS 테이블의 보호시작일로 오름차순 정렬5. LIMIT 으로 3행 제한[정답]SELECT I.NAME, I.DATETIMEFROM ANIMAL_INS ILEFT JOIN ANIMAL_OUTS OON I.ANIMAL_ID = O.ANIMAL_IDWHERE O.A..
[문제] CAR_RENTAL_COMPANY_CAR 테이블에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출력하는 SQL문을 작성해주세요. 이때 자동차 수에 대한 컬럼명은 CARS로 지정하고, 결과는 자동차 종류를 기준으로 오름차순 정렬해주세요. [단계별 풀이] 1. OPTIONS에 통풍시트가 있거나 열선시트, 가죽시트가 있는 행만 필터링 (REGEXP 활용)2. 자동차 종류별로 GROUP BY3. CAR_ID를 COUNT 한 후 컬럼명을 CARS로 지정4. CAR_TYPE으로 오름차순 정렬[정답]SELECT CAR_TYPE, COUNT(CAR_ID) AS CARSFROM CAR_RENTAL_COMPANY_CAR WHERE OPT..
[문제] 상반기에 판매된 아이스크림의 맛을 총주문량을 기준으로 내림차순 정렬하고 총주문량이 같다면 출하 번호를 기준으로 오름차순 정렬하여 조회하는 SQL 문을 작성해주세요. [단계별 풀이] 1. FALVOR컬럼만 선택한다2. TOTAL_ORDER 컬럼을 내림차순 정렬하고, SHIPMENT_ID를 오름차순 정렬한다[정답]SELECT FLAVORFROM FIRST_HALFORDER BY TOTAL_ORDER DESC, SHIPMENT_ID
[문제] PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요. [단계별 풀이] 1. 테이블에서 AGE가 12 이하이면서 GEND_CD가 'W'인 행을 필터링한다2. 환자이름, 환자번호, 성별코드, 나이, 전화번호를 선택하는데 IFNULL 함수를 사용해서 전화번호가 NULL이면 'NONE'으로 대체한다3. 나이를 내림차순 정렬, 환자이름으로 오름차순 정렬한다[정답]SELECT PT_NAME, PT_NO, GEND_CD, AGE, ..
[문제] APPOINTMENT 테이블에서 2022년 5월에 예약한 환자 수를 진료과코드 별로 조회하는 SQL문을 작성해주세요. 이때, 컬럼명은 '진료과 코드', '5월예약건수'로 지정해주시고 결과는 진료과별 예약한 환자 수를 기준으로 오름차순 정렬하고, 예약한 환자 수가 같다면 진료과 코드를 기준으로 오름차순 정렬해주세요. [단계별 풀이] 1. 테이블에서 APNT_YMD가 2022년 5월인 행을 필터링 한다2. 진료과코드를 GROUP BY 해준다3. COUNT 함수로 PT_NO의 행을 센다 (AS 5월예약건수)4. 5월예약건수, 진료과 코드를 정렬한다SELECT MCDP_CD AS 진료과코드, COUNT(PT_NO) AS 5월예약건수FROM APPOINTMENTWHERE APNT_YMD LIK..
[문제] 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. [단계별 풀이] 1. HOUR 함수로 DATETIME 컬럼에서 시간만 추출한 뒤 HOUR 별칭으로 선택한다2. 테이블에서 HOUR가 9 ~ 19 사이인 행만 필터링한다3. HOUR를 GROUP BY 해준다4. COUNT 함수로 ANIMAL_ID의 행 수를 세어준다5. HOUR 순으로 정렬한다[정답]SELECT HOUR(DATETIME) AS HOUR, # HOUR는 숫자값을 반환한다 COUNT(ANIMAL_ID) AS COUNTFROM ANIMAL_OUTSWHERE..