728x90
문제 :
2022년 5월에 예약한 환자 수를 진료과코드 별로 조회하는 SQL문을 작성해주세요.
이때, 컬럼명은 '진료과 코드', '5월예약건수'로 지정해주시고
결과는 진료과별 예약한 환자 수를 기준으로 오름차순 정렬하고,
예약한 환자 수가 같다면 진료과 코드를 기준으로 오름차순 정렬해주세요.
풀이 힌트 :
- 2022년 5월에 예약한 환자의 수를 출력하기
- WHERE 절을 사용하여 apnt_ymd(진료예약일시) 조건을 주어 2022년 5월만 출력하게 해야 합니다. 이때 취소된 예약 건수는 포함하지 않습니다.
- MySQL은 LIKE를 사용하거나 DATE 타입으로 변환하여 사용할 수 있습니다. Oracle은 아래와 같은 추가 조건이 있습니다:
- 숫자로 시작하는 열의 이름은 큰따옴표로 감싸기
- 문자열은 작은따옴표로 감싸기
- 진료과코드별로 조회하기
- GROUP BY 절을 사용하여 진료과 코드끼리 그룹으로 묶습니다.
- 컬럼명은 '진료과 코드', '5월예약건수'로 지정하기
- 열의 이름을 '진료과 코드', '5월예약건수'로 변경합니다. 이는 AS 키워드를 사용하여 변경할 수 있습니다.
- 진료과별 예약한 환자 수, 진료과 코드를 기준으로 오름차순 정렬하기
- ORDER BY 절을 사용하여 오름차순으로 정렬합니다. ORDER BY 절에 컬럼이 2개가 들어오면 첫 번째 컬럼 값이 같을 경우 두 번째 컬럼을 기준으로 정렬합니다.
정답은 더보기 클릭
더보기
더보기
1. MYSQL
SELECT mcdp_cd as 진료과코드, COUNT(apnt_ymd) as 5월예약건수
FROM appointment
WHERE apnt_ymd LIKE '2022-05%'
GROUP BY mcdp_cd
ORDER BY 5월예약건수, mcdp_cd;
2. ORACLE
SELECT mcdp_cd AS "진료과코드", COUNT(apnt_ymd) AS "5월예약건수"
FROM appointment
WHERE TO_CHAR(apnt_ymd, 'YYYY-MM') = '2022-05'
GROUP BY mcdp_cd
ORDER BY "5월예약건수", mcdp_cd;
728x90
'프로그래머스(Oracle)' 카테고리의 다른 글
[프로그래머스 (Oracle)] 조건에 맞는 사용자와 총 거래금액 조회하기 (1) | 2024.10.02 |
---|---|
[프로그래머스 (Oracle)] 대여 기록이 존재하는 자동차 리스트 구하기 (4) | 2024.10.02 |
[프로그래머스 (Oracle)] 식품분류별 가장 비싼 식품의 정보 조회하기 (1) | 2024.10.01 |
[프로그래머스 (Oracle)] 보호소에서 중성화한 동물 (0) | 2024.10.01 |
[프로그래머스 (Oracle)] 오랜 기간 보호한 동물(1) (1) | 2024.09.26 |