250x250
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 |
Tags
- GIT
- 파이썬 슬라이싱
- 프로그래머스
- ORDER BY
- Join
- pcce 기출문제
- date_format
- 슬라이싱
- 파이썬 몫
- where
- css
- map
- sql
- html
- 아이엠어바텐더
- 단어 공부
- 백준
- 파이썬
- Python3
- 프로젝트
- Len
- List Comprehension
- python
- 설계
- 코딩테스트 연습
- YOLOv5
- Django
- SQL 고득점 Kit
- count
- 데이터
Archives
- Today
- Total
nan + nan = 2nan
[프로그래머스/SELECT] 조건에 부합하는 중고거래 댓글 조회하기 본문
728x90
코드 입력
SELECT UGB.TITLE, UGB.BOARD_ID, UGR.REPLY_ID, UGR.WRITER_ID, UGR.CONTENTS, DATE_FORMAT(UGR.CREATED_DATE, "%Y-%m-%d") AS CREATED_DATE
FROM USED_GOODS_BOARD AS UGB
JOIN USED_GOODS_REPLY AS UGR
ON UGR.BOARD_ID = UGB.BOARD_ID
WHERE 1=1
# AND YEAR(UGR.CREATED_DATE) = '2022' AND MONTH(UGR.CREATED_DATE) = '10'
# AND UGR.CREATED_DATE BETWEEN '2022-10-01' AND '2022-10-31'
AND UGB.CREATED_DATE BETWEEN '2022-10-01' AND '2022-10-31'
# AND UGR.CONTENTS != ''
ORDER BY UGR.CREATED_DATE ASC, UGB.TITLE ASC;
이 문제를 처음 봤을 때, 쉽게 풀 수 있을 거라 생각했는데 무엇 때문인지 자꾸 틀렸다고 해서 애를 먹은 문제이다.
2개 테이블이 나왔기 때문에 JOIN 함수를 이용해주었고,
22년 10월 데이터를 조회하기 위에 WHERE 절에 BETWEEN 구문을 활용했다.
사수님께서 YEAR, MONTH 와 같은 연산 함수들을 WHERE 절에서 사용하면
나중에 데이터가 많아질 때 행 하나씩 연산을 하기 때문에 성능이 저하된다라고 하시면서
BETWEEN 구문을 활용하는게 성능 측면에서 나을 거라는 이야기를 해주셨다.
참고로 BETWEEN도 오랜만에 써서 문법을 까먹었는데,
[COLUMN] BETWEEN A AND B 형식으로 사용하면 된다.
아직 성능 측면에서 생각할 단계는 아니지만,
그런 부분도 생각하면서 쿼리를 짜면 나중에도 좋은 습관이 들겠다는 생각이 들었다.
출처 : 프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/164673
'Database > SQL' 카테고리의 다른 글
[프로그래머스/SELECT] 가장 큰 물고기 10마리 구하기 (0) | 2024.03.27 |
---|---|
[프로그래머스/SELECT] 잔챙이 잡은 수 구하기 (0) | 2024.03.26 |
[프로그래머스/SELECT] 평균 일일 대여 요금 구하기 (0) | 2024.03.24 |
[프로그래머스/SELECT] 조건에 맞는 도서 리스트 출력하기 (0) | 2024.03.23 |
[프로그래머스/SELECT] 강원도에 위치한 생산공장 목록 출력하기 (0) | 2024.03.22 |
Comments