_Han_
나의 개발 노트
_Han_
  • 분류 전체보기 (272)
    • 데이터 엔지니어링 (29)
    • 인프라 (3)
    • 추천시스템 (11)
    • 코딩테스트 (146)
    • 부트캠프 회고 (15)
    • 회고 (4)
    • 자격증 (1)
    • 파이썬 프로그래밍 (6)
    • 통계 (2)
    • Git (21)
    • 유니티2D (33)

최근 글

반응형
hELLO · Designed By 정상우.
_Han_

나의 개발 노트

[코딩테스트] 프로그래머스 조건별로 분류하여 주문상태 출력하기 MySQL
코딩테스트

[코딩테스트] 프로그래머스 조건별로 분류하여 주문상태 출력하기 MySQL

2022. 12. 4. 15:55
반응형

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

 

프로그래머스

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

programmers.co.kr

SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, '%Y-%m-%d') AS OUT_DATE,
    CASE
        WHEN (DATE_FORMAT(OUT_DATE, '%m-%d') <= DATE_FORMAT(20220501, '%m-%d')) THEN '출고완료'
        WHEN (DATE_FORMAT(OUT_DATE, '%m-%d') > DATE_FORMAT(20220501, '%m-%d') ) THEN '출고대기'
        ELSE '출고미정'
    END AS '출고여부'
FROM FOOD_ORDER
ORDER BY ORDER_ID ASC

CASE 문으로 여러 조건에 따라 조건에 맞는 결과값을 반환하면서 문제를 해결했습니다.

 

DATE_FORMAT 함수를 이용하여 OUT_DATE를 주어진 기준(20220501)을 05-01형태로 변환하여 조건에 부합하는지 확인했습니다.

조건을 확인해보면 기준보다 작다면 출고완료, 크다면 출고대기, 두 조건모두 부합하지 않는다면 출고미정으로 결과를 반환하게 됩니다.

- OUT_DATE가 2022-04-21이라면 04-21로 변환이됩니다. 기준(05-01)보다 작기 때문에 출고완료를 반환합니다.

- OUT_DATE가 NULL이라면 두 조건에 부합하지 않기 때문에 출고미정으로 반환합니다.

 

ORDER BY 문에서는 주문ID(ORDER_ID)를 기준으로 오름차순(ASC)정렬하여 출력합니다.

반응형

'코딩테스트' 카테고리의 다른 글

[코딩테스트] 프로그래머스 헤비 유저가 소유한 장소 MySQL  (0) 2022.12.05
[코딩테스트] 프로그래머스 즐겨찾기가 가장 많은 식당 정보 출력하기 MySQL  (0) 2022.12.05
[코딩테스트] 프로그래머스 없어진 기록 찾기 MySQL  (0) 2022.12.04
[코딩테스트] 프로그래머스 있었는데요 없었습니다 MySQL  (0) 2022.12.03
[코딩테스트] 프로그래머스 보호소에서 중성화한 동물 MySQL  (0) 2022.12.02
    '코딩테스트' 카테고리의 다른 글
    • [코딩테스트] 프로그래머스 헤비 유저가 소유한 장소 MySQL
    • [코딩테스트] 프로그래머스 즐겨찾기가 가장 많은 식당 정보 출력하기 MySQL
    • [코딩테스트] 프로그래머스 없어진 기록 찾기 MySQL
    • [코딩테스트] 프로그래머스 있었는데요 없었습니다 MySQL
    _Han_
    _Han_
    학습한 것을 기록합니다.

    티스토리툴바