https://school.programmers.co.kr/learn/courses/30/lessons/131697
SELECT MCDP_CD AS '진료과코드', COUNT(PT_NO) AS '5월예약건수'
FROM APPOINTMENT
WHERE APNT_YMD LIKE '2022-05%'
GROUP BY MCDP_CD
ORDER BY 5월예약건수, 진료과코드
찾아야 하는 값
- 2022년 5월에 예약
- 환자 수
조회 할 테이블: APPOINTMENT
조건
- 컬럼명을 '진료과코드', '5월예약건수'로 지정
- 진료과별 예약한 환자수를 기준으로 오름차순 정렬
- 예약한 환자 수가 같다면 진료과 코드를 기준으로 오름차순 정렬
풀이
1. 컬럼명을 '진료과코드', '5월예약건수'로 지정 (SELECT, FROM 절)
SELECT MCDP_CD AS '진료과코드', COUNT(PT_NO) AS '5월예약건수'
FROM APPOINTMENT
- AS 별칭 으로 사용하면 됨
- 별칭에 띄어쓰기가 있다면 따옴표 사용해야 함
2. 2022년 5월에 예약 (WHERE 절)
SELECT MCDP_CD AS '진료과코드', COUNT(PT_NO) AS '5월예약건수'
FROM APPOINTMENT
WHERE APNT_NO LIKE '2022-05%'
- LIKE 절 사용
- 데이터 끝에 %를 사용하면 2022-05로 시작하는 문자가 있는 ROW 출력
3. 진료과별 예약한 환자 수 구하기
SELECT MCDP_CD AS '진료과코드', COUNT(PT_NO) AS '5월예약건수'
GROUP BY MCDP_CD
- GROUP BY와 집계 함수인 COUNT를 통해 진료과별 예약한 환자 수를 구함
- 진료과 코드(MCDP_CD)를 기준으로 환자 번호(PT_NO)의 개수를 세어 5월 예약건수를 구함
3. 진료과별 예약한 환자 수를 기준으로 오름차순 + 진료과 코드를 기준으로 오름차순 정렬
ORDER BY 5월예약건수, 진료과코드
- ORDER BY를 통해 오름차순 정렬 (DESC를 따로 명시하지 않을 경우, Default 값은 ASC (오름차순))
- GROUP BY, ORDER BY, HAVING 절에 별칭을 사용할 경우, 별칭 그대로 사용하거나 '별칭'과 같이 억음부호인 ` ` (Backtick)을 사용해야 함
'코딩테스트 - 프로그래머스 > SQL' 카테고리의 다른 글
[SQL] 상품 별 오프라인 매출 구하기 (0) | 2023.11.21 |
---|---|
[SQL] 경기도에 위치한 식품 창고 목록 출력하기 (0) | 2023.11.21 |
[SQL] 가장 비싼 상품 구하기 (0) | 2023.11.20 |
[SQL] 모든 레코드 조회하기 (0) | 2023.11.20 |
[SQL] 상위 n개 레코드 (0) | 2023.09.09 |