SQL 학습 9일차. User Activity for the past 30days (DATE_SUB, DATE_ADD)
다양성과 방향성

여행으로 재미있게 살고 엑셀로 성장하는 삶

직무강화/SQL

SQL 학습 9일차. User Activity for the past 30days (DATE_SUB, DATE_ADD)

LATI 라티 2024. 8. 26. 23:53
반응형

 

오늘의 문제는 2019-07-27을 끝으로 30일 내에 활성화된 유저를 찾는 것이다.

날짜와 유저들의 고유 아이디 수를 찾으면 된다,

 

SELECT activity_date as day, count(distinct user_id) as active_users
FROM Activity
GROUP BY activity_date
HAVING activity_date BETWEEN DATE_SUB('2019-07-27', INTERVAL 30 DAY) AND '2019-07-27'

정답은 위와 같은데, DATE_SUB와 INTERVAL 30 DAY를 몰라서 정답을 못맞췄다.

물론 30일 이전은 2019-06-28이라 계산해도 되겠지만, 수식을 통해 풀어야 더 간단하고 빠르게 일을할 수 있다.

 

A와 B 기간 사이의 경우 BETWEEN A AND B를 활용하면 된다.

기간의 차이를 구할 때는 DATE_SUB('날짜' INTERVAL '일수' DAY)로 작성하여 30일 이전의 날짜를 찾아주면 된다.

 

아...! 날짜를 더해줄 땐 DATE_ADD를 활용하면 된다.

 

1. 해당 날짜 기준 N일 이전의 날짜를 찾고 싶을 때 : DATE_SUB (차이)

2. 해당 날짜 기준 N일 이후의 날짜를 찾고 싶을 때 : DATE_ADD (합)

 

반응형