본문 바로가기
Algorithm/Programmers SQL

[MySQL] 프로그래머스 흉부외과 또는 일반외과 의사 목록 출력하기

by 제우제우 2024. 9. 6.

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

 

프로그래머스

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

programmers.co.kr

코딩테스트 연습 > SELECT > 흉부외과 또는 일반외과 의사 목록 출력하기

 

문제 분석 

난이도: LEVEL1 

 

문제 요구사항

1. 진료과가 흉부외과(CS)이거나 일반외과(GS)

2. 의사의 이름, 의사ID, 진료과, 고용일자를 조회

3. 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬

 

1) WHERE MCDP_CD IN ('CS', 'GS')

 

2) DR_NAME, DR_ID, MCDP_CD, SUBSTRING(HIRE_YMD, 1, 10) HIRE_YMD

SUBSTRING을 사용해도 괜찮지만 DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') 를 사용해도 괜찮다. 

 

3) ORDER BY HIRE_YMD DESC, DR_NAME ASC

 

정답 코드 1 (SUBSTRING)

SELECT DR_NAME, DR_ID, MCDP_CD, SUBSTRING(HIRE_YMD, 1, 10) HIRE_YMD
FROM DOCTOR
WHERE MCDP_CD IN ('CS', 'GS')
ORDER BY HIRE_YMD DESC, DR_NAME ASC

정답 코드 2 (DATE_FORMAT)

SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') HIRE_YMD
FROM DOCTOR
WHERE MCDP_CD IN ('CS', 'GS')
ORDER BY HIRE_YMD DESC, DR_NAME ASC