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

 

프로그래머스

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

programmers.co.kr

코드설명

SELECT + DATE_FORMAT + IN 을 활용하는 문제입니다.

 

SQL 쿼리는 특정 의료 과(MCDP_CD)에 속하는 의사들의 정보를 가져와서 고용 날짜(HIRE_YMD)를 내림차순으로 정렬하여 출력하는 것입니다. 아래는 쿼리의 로직을 설명합니다:

  1. SELECT 문:
    • DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d'): 의사 이름, 의사 ID, 의료 과 코드, 고용 날짜를 선택합니다. DATE_FORMAT 함수를 사용하여 고용 날짜를 원하는 형식으로 변환합니다.
  2. FROM 문:
    • FROM DOCTOR: DOCTOR 테이블에서 데이터를 가져옵니다.
  3. WHERE 문:
    • WHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS': 의료 과 코드가 'CS' 또는 'GS'인 의사들을 필터링합니다.
  4. ORDER BY 문:
    • ORDER BY HIRE_YMD DESC: 고용 날짜를 내림차순으로 정렬합니다. 즉, 가장 최근에 고용된 의사가 먼저 나오도록 합니다.

코드

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

 

IN을 활용한 코드입니다.

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;
SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD,'%Y-%m-%d')
FROM DOCTOR
WHERE MCDP_CD IN ('CS', 'GS')
ORDER BY HIRE_YMD DESC, DR_NAME ASC;

+ Recent posts