문제
다음은 종합병원에 속한 의사 정보를 담은DOCTOR 테이블입니다. DOCTOR 테이블은 다음과 같으며 DR_NAME, DR_ID, LCNS_NO, HIRE_YMD, MCDP_CD, TLNO는 각각 의사이름, 의사ID, 면허번호, 고용일자, 진료과코드, 전화번호를 나타냅니다.
Column name | Type | Nullable |
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문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.
🍀 Solution
SELECT dr_name, dr_id, mcdp_cd, date_format(hire_ymd, '%Y-%m-%d') HIRE_YMD
FROM doctor
WHERE mcdp_cd = 'CS' or mcdp_cd = 'GS'
ORDER BY hire_ymd desc, dr_name
🐧 풀이
- DOCTOR 테이블에서
- 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사
→ `WHERE mcdp_cd = 'CS' or mcdp_cd = 'GS'` - 의사의 이름(dr_name), 의사ID(dr_id), 진료과(mcdp_cd), 고용일자(hire_ymd)를 조회
- 단 날짜 포맷의 경우 '2020-03-01'와 같아야 함
→ `date_format(hire_ymd, '%Y-%m-%d') HIRE_YMD`
- 단 날짜 포맷의 경우 '2020-03-01'와 같아야 함
- 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬
→ `ORDER BY hire_ymd desc, dr_name`
🖨️ 결과
dr_name | dr_id | mcdp_cd | HIRE_YMD |
니모 | DR20200012 | CS | 2020-03-01 |
윈더 | DR20190029 | CS | 2019-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 |
'⌨️ Code Taka > MySQL' 카테고리의 다른 글
[프로그래머스] 이름이 없는 동물의 아이디 (0) | 2024.05.14 |
---|---|
[프로그래머스] 가격이 제일 비싼 식품의 정보 출력하기 (0) | 2024.05.08 |
[프로그래머스] DATETIME에서 DATE로 형 변환 (0) | 2024.05.08 |
[프로그래머스] 강원도에 위치한 생산공장 목록 출력하기 (0) | 2024.05.08 |
[프로그래머스] 경기도에 위치한 식품창고 목록 출력하기 (0) | 2024.05.08 |