Road to Data Scientist

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

코딩 테스트/SQL

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

ShazelP 2024. 5. 28. 12:34

흉부외과 또는 일반외과 의사 목록 출력하기

DOCTOR 테이블

- DR_NAME: 의사 이름

- DR_ID: 의사 아이디

- LCNS_NO: 면허번호

- HIRE_YMD: 고용일자

- MCDP_CD: 진료과 코드

-TLNO: 전화번호

 

문제

DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.

 

정답 예시

 

코드

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

 

설명

1. DOCTOR 테이블에서 DR_NAME, DR_ID, MCDP_CD, HIRE_YMD 를 추출하는데

2. 고용일자를 DATE_FORMAT(HIRE_YMD, '%Y-%m-%d')으로 맞춰주고 이를 AS HIRE_YMD로 컬럼명을 설정한다.

3. 그 중 진료과 코드가 흉부외과(CS)이거나 일반외과(GS)인 데이터를 추출하기 위해 WHRE MCDP_CD IN ("CS","GS) 를 적고

4. 추출된 모든 데이터를 ORDER BVY HIRE_YMD DESC 로 고용일자 기준으로 내림차순으로 먼저 정렬한 뒤

5. 고용일자가 같은 경우 DR_NAME ASC 로 정렬한다.

 

+DATE_FORMAT(칼럼명, '%Y-%m-%d')

- 특정 칼럼의 날짜 형식을 YYYY-MM-DD 형식으로 맞추기 위함

 

+ WHRE 칼럼명 IN ("값1", "값2")

- 해당 칼럼의 값이 값1 이거나 값2 인 경우를 추출

- 동일한 문장: WHRE 칼럼명 == "값1" OR 칼럼명 == "값2" 

 

출처

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

 

프로그래머스

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

programmers.co.kr