rubus0304 님의 블로그
[데이터분석 6일차] SQL코드카타 (Lv.2 30번 끝) 본문
27. 진료과별 총 예약횟수 출력하기
APPOINTMENT 테이블에서 2022년 5월에 예약한 환자 수를 진료과코드 별로 조회하는 SQL문을 작성해주세요. 이때, 컬럼명은 '진료과 코드', '5월예약건수'로 지정해주시고 결과는 진료과별 예약한 환자 수를 기준으로 오름차순 정렬하고, 예약한 환자 수가 같다면 진료과 코드를 기준으로 오름차순 정렬해주세요.
<오답>
SELECT MCDP_CD 진료과코드,
count(APNT_CNCL_YN = 'Y') 5월예약건수
from appointment
where date(apnt_ymd) like '%2022-05%'
group by 1
order by 2, 1
<정답>
1. 2022년 5월에 예약한 환자
- WHERE절
방법1) WHERE APNT_YMD LIKE '2022~05%'
방법2) WHERE YEAR(APNT_YMD)='2022' and MONTH(APNT_YMD)='05'
방법3) WHERE DATE_FORMAT(APNT_YMD, '%Y-%m')='2022-05'
방법4) WHERE LEFT(APNT_YMD,7)='2022-05'
2. 진료과별 예약한 환자수
GROUP BY와 집계함수 COUNT 사용
SELECT MCDP_CD as "진료과코드",
count(PT_NO) as "5월예약건수"
from appointment
where apnt_ymd like '%2022-05%'
group by 1
order by 5월예약건수, 진료과코드
28. 12세 이하인 여자 환자 목록 출력하기
PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요.
SELECT pt_name,
pt_no,
gend_cd,
age,
if(tlno is null, 'NONE',tlno) TLNO
from patient
where age <='12' and gend_cd = 'W'
order by age desc, pt_name
29. 인기있는 아이스크림
상반기에 판매된 아이스크림의 맛을 총주문량을 기준으로 내림차순 정렬하고 총주문량이 같다면 출하 번호를 기준으로 오름차순 정렬하여 조회하는 SQL 문을 작성해주세요.
SELECT flavor
from first_half
order by total_order desc, shipment_id
30. 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기
CAR_RENTAL_COMPANY_CAR 테이블에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출력하는 SQL문을 작성해주세요. 이때 자동차 수에 대한 컬럼명은 CARS로 지정하고, 결과는 자동차 종류를 기준으로 오름차순 정렬해주세요.
<오답>
SELECT car_type,
Options in ('통풍시트','열선시트','가죽시트'),
count(*) CARS
from car_rental_company_car
group by car_type
order by car_type
<정답>
1. CAR_TYPE으로 그룹화 시키기 + 종류별 집계함수 사용
SELECT CAR_TYPE,
COUNT(CAR_TYPE) as CARS
FROM CAR_RENTAL_COMPANY_CAR
GROUP BY CAR_TYPE
2. 옵션 리스트에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상이 포함된 경우
SELECT CAR_TYPE,
COUNT(CAR_TYPE) as CARS
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS like '%열선시트%' or OPTIONS like '%통풍시트%' or OPTIONS like '%가죽시트%'
GROUP BY CAR_TYPE;
order by car_type asc
'Data Analyst > daily' 카테고리의 다른 글
[데이터분석 8일차] SQL코드카타 (Lv.4 57번까지) (3) | 2024.10.10 |
---|---|
[데이터분석 7일차] SQL 코드카타 (Lv.3-Lv.4진입) (5) | 2024.10.09 |
[데이터 분석 5일차] SQL 코드카타 (Lv.1 -Lv.2 26번 까지) (0) | 2024.10.07 |
[데이터분석 4일차] (라이브세션 과제: where구문, subquery) (1) | 2024.10.04 |
[데이터 분석 3일차 ② ]데이터가 없거나 상식적이지 않을 때 NULL, COALESCE, Pivot Table, Window function (rank, sum, date(포맷함수) (0) | 2024.10.02 |