SQL 고득점 Kit: 흉부외과 또는 일반외과 의사 목록 출력하기
Reference: https://school.programmers.co.kr/learn/courses/30/lessons/132203다음은 종합병원에 속한 의사 정보를 담은 DOCTOR 테이블입니다. DOCTOR 테이블은 다음과 같으며 DR_NAME, DR_
Reference: https://school.programmers.co.kr/learn/courses/30/lessons/132203
문제 설명 ✅
다음은 종합병원에 속한 의사 정보를 담은 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 문을 작성해 주세요. 이때 결과는 고용 일자를 기준으로 내림차순 정렬하고, 고용 일자가 같다면 이름을 기준으로 오름차순 정렬해 주세요.
예시 ✅
DOCTOR 테이블이 다음과 같을 때
| DR_NAME | DR_ID | LCNS_NO | HIRE_YMD | MCDP_CD | TLNO | | :-: | :-: | :-: | :-: | :-: | :-: | | 루피 | 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_NAME | DR_ID | MCDP_CD | HIRE_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 |
⚠️ 날짜 포맷은 예시와 동일하게 나와야 합니다.
통과한 코드 ✅
SELECT
DR_NAME,
DR_ID,
MCDP_CD,
DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMD
FROM
DOCTOR
WHERE
MCDP_CD = 'CS' OR MCDP_CD = 'GS'
ORDER BY
HIRE_YMD DESC,
DR_NAME ASC;보충 ✅
최근까지 학습한 내용을 복습해 보라고 배치한 문제가 아닐까 생각이 들 정도로 쉬운 문제였습니다. 다만, MCDP_CD = 'CS' OR MCDP_CD = 'GS' 부분을 개선하여 다음과 같이 코드를 작성할 수 있습니다.
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;IN 연산자를 통해, 조건을 더 간결하고 읽기 쉽게 수정할 수 있습니다. 여러 개의 OR 조건을 하나로 묶어주는 역할을 하는 것이 IN 연산자라고 이해하시면 좋습니다.
More to read
AI&ML 기초
Reference: https://bettermesol.github.io/ml/2019/09/16/ai-ml-dl/AI: 기계가 사람처럼 생각하고 판단하게 만드는 가장 넓은 범주의 기술입니다.ML: 데이터를 학습하여 스스로 규칙을 찾아내는 AI의 한 분야로,
'AI Agent Economy'Novitas : AI Agent가 지갑을 가지는 세상
얼마 전, 미래에셋증권 리서치 리포트(올해는 이더리움이다: 에이전트 시대의 Near Automata)를 접하게 되었습니다. AI Agent를 인간과 함께할 경제 주체로 바라보는 시각에 적잖이 충격을 받았더랬죠.한 가지 짚고 넘어갈 부분이 있습니다. 우리가 흔히 'AI'
'ERC-8004'Novitas: AI 에이전트 경제 주체
Web 4.0을 한 문장으로 정의하면 Sovereign Transact입니다.AI가 인간의 허락 없이 지갑을 소유하고, 결제를 수행하며, 인프라를 통제하는 주권적 경제 주체가 되는 세계입니다. Web 3.0이 블록체인 기반의 탈중앙화를 실현했다면, Web 4.0은 그