TIL_[SQL] 프로그래머스_코딩테스트 회고를 통한 sql 문법 공부2 + 약간의 파이썬

김희정·2023년 12월 1일

TIL

목록 보기
4/57
post-thumbnail

프로그래머스_SQL문제 / 흉부외과 또는 일반외과 의사 목록 출력하기

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

여기서 막혔던 곳은

  1. date_format 함수로 날짜 포맷을 바꿔주는 것

  2. order by 에서 숫자로 지정하니까 정답이 아니었었다.

date_format

Date_format(해당컬럼/날짜, 원하는 포맷)
  • Date_format 구분기호
구분기호역할
%Y4자리 년도
%y2자리 년도
%MJanuary~
%m숫자 월 (1~12)
%D1st, 2nd ~
%d일(01~31)
%H00~23 (시)
%h01~12 (시)
%i00~59 (분)
%S00~59 (초)
%WMonday
%aMon

- 대소문자 구분에 주의!!
date_format 문제를 몇번 만나다보니 점점 어떻게 풀지 감이 오는 것 같다.

Order by

나는 select 문 3번째 순으로 정렬해줘라고 생각했으나, 컴퓨터는 date_format으로 뒤덮힌 hire_ymd를 제대로 인식하지 못하는 것 같다.
앞으로 그냥 애매하게 생겼을 땐 컬럼명을 제대로 지정해줘야겠다.


[Python] f-string

따로 개인학습을 하다 새롭게 알게된 걸 정리하고자 한다.

이전에 유튜브 독학으로 파이썬을 배웠을 때 변수값을 가져올때 .format(blabla) 이렇게 가져오는게 귀찮았는데 f-string은 너무 편해서 마음에 들었다.

  • 기존에 알던 방식
x = 1
y = 2
print("{} + {}는 {}입니다.".format(x, y, x+y))
  • f-string
x = 1
y = 2
print(f"{x} + {y}{x+y} 입니다.")
  • 결과

저게 프린트 문이 짧아서 망정이지... 프린트문도 긴데 format()까지 주렁주렁 달았을때 너무 고통스러웠었다.
더 쉽게 작성하는 방법을 알았으니 이제 이걸 활용해서 코드 작성해야겠다 🥳

profile
데이터 애널리스트가 되고 싶은

0개의 댓글