https://school.programmers.co.kr/learn/courses/30/lessons/132202

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

코드설명

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월예약건수", "진료과코드"

 

 

+ Recent posts