Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Dynamic Programming
- Python
- 자바스크립트
- 너비 우선 탐색
- dfs
- LEVEL 2
- Lv. 2
- 프로그래머스
- SQL 고득점 KIT
- group by
- programmers
- level 3
- Java
- 깊이 우선 탐색
- softeer
- Lv. 0
- DP
- SQL
- Lv. 1
- join
- 소프티어
- 오블완
- 티스토리챌린지
- javascript
- select
- Lv. 3
- C언어
- 동적계획법
- 파이썬
- bfs
Archives
- Today
- Total
몸과 마음이 건전한 SW 개발자
[SQL-STRING, DATE] 프로그래머스 Lv. 3 대여 기록이 존재하는 자동차 리스트 구하기 본문
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/157341
정답 코드
SELECT CRCRH.CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY CRCRH
JOIN CAR_RENTAL_COMPANY_CAR CRCC
ON CRCRH.CAR_ID = CRCC.CAR_ID
AND CRCRH.START_DATE BETWEEN '2022-10-01' AND '2022-10-31'
AND CRCC.CAR_TYPE = '세단'
GROUP BY CRCRH.CAR_ID
ORDER BY CRCRH.CAR_ID DESC;
풀이 과정
- CAR_RENTAL_COMPANY_RENTAL_HISTORY (CRCRH)와 CAR_RENTAL_COMPANY_CAR (CRCC)를 CAR_ID를 기준으로 조인한다.
- ON 조건을 만족하는 데이터만 결합되며, CRCRH.CAR_ID = CRCC.CAR_ID 조건이 적용된다.
- 조인된 데이터에서 WHERE 조건에 따라 필터링한다.
- 조건은 CRCRH.START_DATE가 2022-10-01에서 2022-10-31 사이에 포함되고, CRCC.CAR_TYPE이 '세단'인 경우다.
- 필터링된 데이터를 GROUP BY CRCRH.CAR_ID로 그룹화하여 중복된 차량 ID를 제거한다.
- 그룹화된 데이터에서 SELECT 문을 통해 CAR_ID를 선택한다.
- 마지막으로 ORDER BY CRCRH.CAR_ID DESC를 적용하여 차량 ID를 내림차순으로 정렬하고 결과를 출력한다.
느낀점
- JOIN을 할 때 INNER JOIN으로 조건을 모두 만족하는 경우만 출력하게 했으며 CAR_ID를 그룹화 시켜서 중복을 제거했다.
- 한번에 풀려서 다행이라고 느끼면서도 항상 실수하지 않도록 꼼꼼히 풀어 보자.
'SQL > String, Date' 카테고리의 다른 글
[SQL-DATE] 프로그래머스 Lv. 3 오랜 기간 보호한 동물(2) (1) | 2024.12.27 |
---|---|
[SQL-DATE] 프로그래머스 Lv. 2 연도 별 평균 미세먼지 농도 조회하기 (0) | 2024.12.21 |
[SQL-DATE] 프로그래머스 Lv. 1 한 해에 잡은 물고기 수 구하기 (0) | 2024.12.18 |