https://school.programmers.co.kr/learn/courses/30/lessons/132202
코드설명
DATE_FORMAT + GROUP BY + COUNT를 활용합니다.
문제에서 특이점은, 한국말로 ALIAS 를 설정할 경우 따음표나 쌍따음표가 아닌
백틱( ` )을 사용해야한다는 점입니다.
코드
SELECT MCDP_CD AS `진료과코드`, COUNT(*) AS `5월예약건수`
FROM APPOINTMENT
WHERE DATE_FORMAT(APNT_YMD, '%Y-%m') = "2022-05"
GROUP BY `진료과코드`
ORDER BY `5월예약건수` ASC, `진료과코드` ASC;
-- WHERE 절은 데이터베이스에 이미 존재하는 필드를 기준으로 한다.
-- 항상
-- FROM
-- WHERE
-- GROUP BY
-- HAVING
-- select
-- ORDER BY 순서대로 작성한다.
-- HAVING 절은 집계를 통해 생성한 결과를 기준으로 한다.
SELECT MCDP_CD AS '진료과코드', COUNT(*) AS '5월예약건수'
FROM APPOINTMENT
WHERE DATE_FORMAT(APNT_YMD, '%Y-%m') = '2022-05'
GROUP BY MCDP_CD
-- HAVING DATE_FORMAT(APNT_YMD, '%Y-%m') = '2022-05' 이건 불가합니다. HAVING절은 집계를 통해 생성한 결과를 기준으로 하기 떄문.
ORDER BY COUNT(*) ASC, MCDP_CD ASC
ORACLE
SELECT A.MCDP_CD AS "진료과코드", COUNT(*) AS "5월예약건수"
FROM APPOINTMENT A
WHERE TO_CHAR(A.APNT_YMD, 'YYYY-MM') = '2022-05'
GROUP BY A.MCDP_CD
ORDER BY "5월예약건수", "진료과코드"