코테 준비 | 프로그래머스 취소되지 않은 진료 예약 조회/자동차 대여 기록에서 대여중/ 대여 가능 여부 구분하기

2024. 12. 6. 00:10·SQL

1. 취소되지 않은 진료 예약 조회하기 

▶ 문제 POINT :  3개 테이블 조인 & 조건 필터링 

[문제] 
[조건]
 - 2022-04-13일에 취소되지 않은 예약건 이면서 
- 'CS' 진료 내역을 조회
- 진료 예약 일시 오름차순 정렬  

 

▶ 문제 해결 & 피드백 POINT : 조건을 적용할 테이블과 출력할 테이블이 다를 경우, 선 조인 후 쿼리 작성 

[풀이 과정]
1. 조건 필터링 해줄 테이블 외 다른 테이블에서 출력해야 할 컬럼이 있으므로 테이블` join` 필요 →진료내역이 있는 환자와 의사이므로 `inner join` 사용

2. Appointment 테이블 조건에 맞춰 필터링 → 날짜 조건이 시분초까지 출력되므로 `date` 함수 활용하여 필터링

3. 컬럼출력 및 정렬 조건 확인 

SELECT a.APNT_NO
       ,p.PT_NAME
       ,a.PT_NO
       ,a.MCDP_CD
       ,d.DR_NAME
       ,a.APNT_YMD
FROM APPOINTMENT a
    INNER JOIN PATIENT p ON a.PT_NO =p.PT_NO
    INNER JOIN DOCTOR d ON a.MDDR_ID =d.DR_ID
WHERE DATE(a.APNT_YMD)='2022-04-13' 
 AND a.MCDP_CD = 'CS'
 AND a.APNT_CNCL_YN ='N'
ORDER BY a.APNT_YMD

 

2. 자동차 대여 기록에서 대여중/ 대여 가능 여부 구분하기

▶ 문제 POINT : 조건문을 활용한 컬럼 생성

[문제] 
[조건]
 - 대여 가능 여부 조건별 컬럼 추가 생성 
- 대여 가능 여부 날짜 조건 확인 (
-  정렬 조건 확인 

 

▶ 문제 해결 & 피드백 POINT : 시작-끝 시각 컬럼이 있는 테이블에서 특정기간에 대여 or 포함되지 않는 조건 부여시 대소관계를 정확하게 파악해야 오류가 없음. 

 

[풀이 과정]
1. 날짜 값 변환 → `date` 함수 활용 

2. 2022-10-16에 대여중인 자동차 조건 확인 → 대여 시작일이 2022-10-16보다 작거나 같고, 반납일이 2022-10-16 보다 크거나 같다면 대여중인 상황 (=해당 일자가 대여 시작일 보다 빠르면서 반납일은 늦어야 대여중인 상황임)

3. 자동차id 기준으로 해당일자에 대여중이면 추가 대여 불가하므로 → `group by`  진행 

4. 그룹바이 후 셀렉절(조건문) 집계 필요 → `max` 함수로  대여중 or 대여가능 중 가장 큰 값만 출력  (한글은 ㄱ~ㅎ 순으로 min~ max 임)

SELECT CAR_ID
       ,MAX(IF(DATE(Start_date)<='2022-10-16' AND DATE(end_date) >= '2022-10-16','대여중','대여 가능')) 
       	AS AVAILABILITY
FROM  CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC

'SQL' 카테고리의 다른 글

코테 준비 | 프로그래머스 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기/입양 시각 구하기(2)  (1) 2024.12.09
SQL 실습 | 결제 이상치 (STD 통계 함수) / 월별 증감률 계산 (재귀적 CTE)  (0) 2024.12.06
프로젝트1 | eCommerce Events History in Cosmetics Shop (kaggle) 데이터 EDA  (1) 2024.12.05
SQL 실습 | Kaggle 데이터 샘플로 분석하기 1 (Brazilian E-Commerce Public Dataset by Olist)  (0) 2024.12.03
프로젝트1 | DBeaver에서 대용량 데이터 셋(csv) IMPORT 하기 / 오류 상황 해결법  (0) 2024.12.03
'SQL' 카테고리의 다른 글
  • 코테 준비 | 프로그래머스 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기/입양 시각 구하기(2)
  • SQL 실습 | 결제 이상치 (STD 통계 함수) / 월별 증감률 계산 (재귀적 CTE)
  • 프로젝트1 | eCommerce Events History in Cosmetics Shop (kaggle) 데이터 EDA
  • SQL 실습 | Kaggle 데이터 샘플로 분석하기 1 (Brazilian E-Commerce Public Dataset by Olist)
성장하는 쿠키의 로그 기록
성장하는 쿠키의 로그 기록
성장하는 쿠키의 모든 로그를 담습니다.
  • 성장하는 쿠키의 로그 기록
    쿠키 로그
    성장하는 쿠키의 로그 기록
  • 전체
    오늘
    어제
    • 분류 전체보기 (143) N
      • TODAY I LEARNED (2) N
      • 데이터 분석 (13)
      • SQL (49)
      • PYTHON (39)
      • 통계,검정,머신러닝 (22)
      • TABLEAU (5)
      • 내배캠 | 데이터분석 부트캠프 (12)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    머신러닝
    SQL
    데이터리안
    태블로
    프로그래머스
    코딩테스트준비
    데이터분석가
    파이썬
    pandas
    MySQL
    티스토리챌린지
    데이터분석
    Python
    코테준비
    오블완
    데이터분석프로젝트
    내배캠
    해커랭크
    sql코딩테스트
    Wil
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
성장하는 쿠키의 로그 기록
코테 준비 | 프로그래머스 취소되지 않은 진료 예약 조회/자동차 대여 기록에서 대여중/ 대여 가능 여부 구분하기
상단으로

티스토리툴바