solvesql
- 3년간 들어온 소장품 집계하기
👉 문제 바로가기(solvesql)
-- 오늘보다 내일의 미세먼지 농도가 더 심한 데이터 추출
-- 오늘,내일, 오늘 미세먼지 농도, 내일 미세먼지 농도 조회
SELECT
t1.measured_at as today,
t2.measured_at as next_day,
t1.pm10,
t2.pm10 as next_pm10
FROM
measurements t1,
measurements t2
WHERE
DATE(t1.measured_at, '+1 days') = t2.measured_at AND
t1.pm10 < t2.pm10
[ 논리 과정 ]
- 주어진 테이블의 measured_at에 1일을 더해 해당 테이블(measurement)의 measured_at과 Inner Join 한다.
- 본 테이블이 오늘, 1일을 더하여 생성한 테이블이 내일이 된다.
- 각 테이블의 measured_at 컬럼과 pm10 컬럼을 조회한다.
[ 문제 상황 ]
- 특정되지 않은 임의의 날의 다음날을 구해야 한다.
[ 해결 ]
- date(타임스탬프, '+1 days') 함수로 1일을 더해준다.
- '+1 days' 자리에 부호와 숫자를 바꿔주면 원하는 일수만큼 가감이 가능하다.
- DATE 함수말고 다른 포맷팅 함수를 사용하면 원하는 포맷팅으로 결과가 도출된다.
[ 회고 ]
- datet를 활용한 날짜 가감 방법을 알게되었다.
- datet말고 다른 날짜 형식 포맷팅 함수들을 사용할 수도 있다.(DATETIME : 타임스탬프, TIME : 'HH:MM:SS' 등)
'DA Study > TIL' 카테고리의 다른 글
[TIL] 문자열 슬라이싱, 문자열 나눠서 조회하기 #SQL #SQLite #solvesql (4) | 2025.02.17 |
---|---|
[TIL] 집계함수 중복처리(DISTINCT) #SQL #SQLite #solvesql (0) | 2025.02.13 |
[TIL] SELECT절에서 서브쿼리 활용하여 비율 구하기 # MySQL # SQL (0) | 2025.02.04 |
[TIL] 조건절에서 서브쿼리 활용하기 # MySQL # SQL (5) | 2025.02.01 |
[TIL] UNION 테이블 병합 시 각 테이블 별 정렬하기 # MySQL # SQL (0) | 2025.01.31 |