Shonny Data
도식화 연습 - SQL 코드카타 #26 ~ #32 본문
| #26. 입양 시각 구하기(1)
지문 | 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. | |
해석 | FROM | ANIAML_OUTS |
SELECT | 시간대, 입양 건수 | |
ORDER BY | 시간대 순 | |
WHERE | 09:00 ~ 19:59 까지 | |
도식 | ![]() |
| #27. 진료과별 총 예약횟수 출력하기
지문 | APPOINTMENT 테이블에서 2022년 5월에 예약한 환자 수를 진료과코드 별로 조회하는 SQL문을 작성해주세요. 이때, 컬럼명은 '진료과 코드', '5월예약건수'로 지정해주시고 결과는 진료과별 예약한 환자 수를 기준으로 오름차순 정렬하고, 예약한 환자 수가 같다면 진료과 코드를 기준으로 오름차순 정렬해주세요. |
|
해석 | FROM | APPOINTMENT |
WHERE | 2022년 5월에 예약한 환자 수 | |
GROUP BY | 진료과코드 별로 조회 | |
SELECT | 예약일자, 진료과코드, 환자수(COUNT) ->5월예약건수 | |
ORDER BY | 진료과별 예약한 환자 수를 기준으로 오름차순 예약한 환자 수가 같다면 진료과 코드를 기준으로 오름차순 |
|
도식 | ![]() |
| #28. 12세 이하인 여자 환자 목록 출력하기
지문 | PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요. | ||
해석 | (테이블) | ![]() |
|
FROM | PATIENT 테이블에서 | PATIENT | |
WHERE | 12세 이하인 여자환자 | AGE <= 12 AND GEND_CD = 'W' |
|
SELECT | 환자이름, 환자번호, 성별코드, 나이, 전화번호 | PT_NAME, PT_NO, GEND_CD, AGE, TLNO | |
→ 전화번호가 없는 경우, 'NONE'으로 출력 | COALESCE(TLNO, "NONE") | ||
ORDER BY | 나이를 기준으로 내림차순 나이가 같다면 환자이름을 기준으로 오름차순 |
ORDER BY AGE DESC, PT_NAME ASC |
| #29. 인기있는 아이스크림
지문 | 상반기에 판매된 아이스크림의 맛을 총주문량을 기준으로 내림차순 정렬하고 총주문량이 같다면 출하 번호를 기준으로 오름차순 정렬하여 조회하는 SQL 문을 작성해주세요. |
||
해석 | (테이블) | ![]() |
출하번호 아이스크림 맛 상반기 아이스크림 총주문량 |
FROM | FIRST_HALF | ||
SELECT | 아이스크림 맛 | ||
GROUP BY | 아이스크림 맛 | ||
ORDER BY | 총주문량 기준 내림차순 출하번호 기준 오름차순 |
| #30. 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기
지문 | CAR_RENTAL_COMPANY_CAR 테이블에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출력하는 SQL문을 작성해주세요. 이때 자동차 수에 대한 컬럼명은 CARS로 지정하고, 결과는 자동차 종류를 기준으로 오름차순 정렬해주세요. |
||
해석 | (테이블) | ![]() |
자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트 |
FROM | CAR_RENTAL_COMPANY_CAR | ||
WHERE | '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차 | OPTIONS like "%통풍시트%" or OPTIONS like "%열선시트%" or OPTIONS like "%가죽시트%" OPTIONS REGEXP '통풍시트|열선시트|가죽시트' |
|
GROUP BY | 자동차 종류 별로 | GROUP BY CAR_TYPE | |
SELECT | 자동차 종류, 자동차 수 -> CARS 컬럼명 | SELECT CAR_TYPE, COUNT(*) AS CARS | |
ORDER BY | 자동차 종류 | ORDER BY CAR_TYPE |
| #31.오랜 기간 보호한 동물(1)
지문 | 아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다. |
||
(테이블) | ANIMAL_INS![]() |
ANIMAL_OUTS![]() |
|
해석 | (풀이법) | 1. 입양을 못 간 동물 → ANIMAL_INS 에는 있지만 ANIMAL_OUTS에는 없는 동물 2. 가장 오래 보호소에 있던 동물 → ANIMAL_INS 오름차순 LIMIT 3 |
|
도식 | ![]() |
| #32. 카테고리 별 도서 판매량 집계하기
지문 | 2022년 1월의 카테고리 별 도서 판매량을 합산하고, 카테고리(CATEGORY), 총 판매량(TOTAL_SALES) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 카테고리명을 기준으로 오름차순 정렬해주세요. | ||
테이블 | BOOK | ![]() |
|
BOOK_SALES | ![]() |
||
도식 | ![]() |
단순히 문제를 푸는 것에 집중하는 것이 아니라
추후 어떠한 SQL 문제든 풀 수 있도록 도식화 하는 연습을 하고 있다.
어떻게 하면 좀 더 쉽게 보일 수 있을지 계속해서 고민하고 있고,
다른 사람들이 한 사례들도 보려고 노력하고 있다.
(하지만 잘 보이지는 않는 것 같다)
SQL 코드카타는 다시 복습으로 풀어보는 거라,
이제 32번 이후부터 JOIN 문제가 많이 나올 것 같은데,
어떻게 하면 JOIN을 좀 더 체계적으로 도식화 할 수 있을지 고민해볼 예정이다.
'Sparta_coding_club > SQL 코드카타' 카테고리의 다른 글
도식화 연습 - SQL 코드카타 #38 ~ #46 (1) | 2024.01.29 |
---|---|
도식화 연습 - SQL 코드카타 #33 ~ #37 (2) | 2024.01.24 |
도식화 연습 - SQL 코드카타 #16 ~ #25 (1) | 2024.01.22 |
도식화 연습 - SQL 코드카타 #1 ~ #15 (0) | 2024.01.08 |
SQL 코드카타 - 변수지정 / SET 함수 / WITH RECURSIVE / 재귀함수 (2) | 2024.01.02 |