관리 메뉴

오늘도 배운다

진료과별 총 예약 횟수 출력하기 >> 프로그래머스 코딩테스트 연습GROUP BY 본문

코딩테스트연습(SQL)

진료과별 총 예약 횟수 출력하기 >> 프로그래머스 코딩테스트 연습GROUP BY

LearnerToRunner 2022. 11. 15. 12:39

진료과별 총 예약 횟수 출력하기

 

문제

APPOINTMENT 테이블에서 2022년 5월에 예약한 환자 수를 진료과코드 별로 조회하는 SQL문을 작성해주세요. 이때, 컬럼명은 '진료과 코드', '5월예약건수'로 지정해주시고 결과는 진료과별 예약한 환자 수를 기준으로 오름차순 정렬하고, 예약한 환자 수가 같다면 진료과 코드를 기준으로 오름차순 정렬해주세요.

 

 
 

 

 

제출답안

SELECT mcdp_cd AS "진열과 코드", COUNT(pt_no) AS "5월 예약건수" 
FROM appointment
WHERE TO_CHAR(apnt_ymd, 'YYYY-MM') = '2022-05' -- TO_CHAR : 오라클 기준
-- WHERE DATE_FORMAT(apnt_ymd, '%Y-%m') = '2022-05' -- DATE_FORMAT : MySQL 기준
GROUP BY mcdp_cd
ORDER BY 2, 1

 

풀이

더보기

 

SQL 명령문 실행 순서대로 생각하기 (FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY)

SELECT mcdp_cd AS "진열과 코드", COUNT(pt_no) AS "5월 예약건수" 
FROM appointment
WHERE TO_CHAR(apnt_ymd, 'YYYY-MM') = '2022-05' -- TO_CHAR : 오라클 기준
-- WHERE DATE_FORMAT(apnt_ymd, '%Y-%m') = '2022-05' -- DATE_FORMAT : MySQL 기준
GROUP BY mcdp_cd
ORDER BY 2, 1

 

FROM  >  WHERE

FROM appointment
WHERE TO_CHAR(apnt_ymd, 'YYYY-MM') = '2022-05' -- TO_CHAR : 오라클 기준
-- WHERE DATE_FORMAT(apnt_ymd, '%Y-%m') = '2022-05' -- DATE_FORMAT : MySQL 기준

>>  appointment 테이블에서 apnt_ymd를 'YYYY-MM'  포맷으로 바꿨을 때 '2022-05'인 데이터로부터

오라클의 경우 TO_CHAR 함수 사용
MySQL의 경우 DATE_FORMAT 함수 사용

 

GROUP BY

GROUP BY mcdp_cd

>> 진료과목별로 그룹화 하고

 

SELECT

SELECT mcdp_cd AS "진열과 코드", COUNT(pt_no) AS "5월 예약건수"

>> mcdp_cd를  "진열과 코드"로, COUNT(pt_no) 를 "5월 예약건수"로 불러온 뒤

 

ORDER BY

ORDER BY 2, 1

>> SELECT의 2번째 칼럼 (환자 수) 기준으로 정렬 후 1번째 칼럼 (진료과코드) 기준으로 오름차순

 

 

 

 

문제 바로 풀어보기

 

728x90
Comments