반응형
츄르사려고 코딩하는집사입니다.
1. [프로그래머스/SQL] 흉부외과 또는 일반외과 의사 목록 출력하기 오라클(Oracle)
2. 문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/132203
3. 문제
다음은 종합병원에 속한 의사 정보를 담은DOCTOR 테이블입니다. DOCTOR 테이블은 다음과 같으며 DR_NAME, DR_ID, LCNS_NO, HIRE_YMD, MCDP_CD, TLNO는 각각 의사이름, 의사ID, 면허번호, 고용일자, 진료과코드, 전화번호를 나타냅니다.
Column nameTypeNullable
DR_NAME | VARCHAR(20) | FALSE |
DR_ID | VARCHAR(10) | FALSE |
LCNS_NO | VARCHAR(30) | FALSE |
HIRE_YMD | DATE | FALSE |
MCDP_CD | VARCHAR(6) | TRUE |
TLNO | VARCHAR(50) | TRUE |
문제
DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.
예시
DOCTOR 테이블이 다음과 같을 때
DR_NAMEDR_IDLCNS_NOHIRE_YMDMCDP_CDTLNO
루피 | DR20090029 | LC00010001 | 2009-03-01 | CS | 01085482011 |
패티 | DR20090001 | LC00010901 | 2009-07-01 | CS | 01085220122 |
뽀로로 | DR20170123 | LC00091201 | 2017-03-01 | GS | 01034969210 |
티거 | DR20100011 | LC00011201 | 2010-03-01 | NP | 01034229818 |
품바 | DR20090231 | LC00011302 | 2015-11-01 | OS | 01049840278 |
티몬 | DR20090112 | LC00011162 | 2010-03-01 | FM | 01094622190 |
니모 | DR20200012 | LC00911162 | 2020-03-01 | CS | 01089483921 |
오로라 | DR20100031 | LC00010327 | 2010-11-01 | OS | 01098428957 |
자스민 | DR20100032 | LC00010192 | 2010-03-01 | GS | 01023981922 |
벨 | DR20100039 | LC00010562 | 2010-07-01 | GS | 01058390758 |
SQL을 실행하면 다음과 같이 출력되어야 합니다.
DR_NAMEDR_IDMCDP_CDHIRE_YMD
니모 | DR20200012 | CS | 2020-03-01 |
뽀로로 | DR20170123 | GS | 2017-03-01 |
벨 | DR20100039 | GS | 2010-07-01 |
자스민 | DR20100032 | GS | 2010-03-01 |
패티 | DR20090001 | CS | 2009-07-01 |
루피 | DR20090029 | CS | 2009-03-01 |
주의사항
날짜 포맷은 예시와 동일하게 나와야합니다.
4. 풀이
- DOCTOR 테이블에서 진료과 코드가 CS와 GS가 들어 있는 것들을 가져오는 조건을 걸고, 고용 날짜를 YYYY-MM-DD 형식에 맞게 컬럼을 가져오는데, 고용 날짜를 기준으로 내림차순으로 정렬하고, 같으면 의사 이름을 기준으로 오름차순으로 정렬하면 된다.
5. 소스 코드
SELECT DR_NAME
, DR_ID
, MCDP_CD
, TO_CHAR(HIRE_YMD, 'YYYY-MM-DD') AS HIRE_YMD
FROM DOCTOR
WHERE MCDP_CD IN ('CS', 'GS')
ORDER BY HIRE_YMD DESC, DR_NAME
반응형
'알고리즘 > 프로그래머스SQL' 카테고리의 다른 글
[프로그래머스/SQL] 인기있는 아이스크림 오라클(Oracle) (0) | 2022.10.27 |
---|---|
[프로그래머스/SQL] 조건별로 분류하여 주문상태 출력하기 오라클(Oracle) (0) | 2022.10.20 |
[프로그래머스/SQL] 12세 이하인 여자 환자 목록 출력하기 오라클(Oracle) (0) | 2022.10.20 |
[프로그래머스/SQL] 진료과별 총 예약 횟수 출력하기 오라클(Oracle) (0) | 2022.10.20 |
[프로그래머스/SQL] 취소되지 않은 진료 예약 조회하기 오라클(Oracle) (1) | 2022.10.20 |
[프로그래머스/SQL] 없어진 기록 찾기 오라클(Oracle) (0) | 2022.10.18 |
[프로그래머스/SQL] 보호소에서 중성화한 동물 오라클(Oracle) (0) | 2022.10.18 |
[프로그래머스/SQL] 입양 시각 구하기(1) 오라클(Oracle) (0) | 2022.10.17 |
최근댓글