rubus0304 님의 블로그

[데이터분석] 코드카타 100 본문

Data Analyst/daily

[데이터분석] 코드카타 100

rubus0304 2024. 11. 12. 10:03

100. User Activity for the Past 30 Days I

 

Write a solution to find the daily active user count for a period of 30 days ending 2019-07-27 inclusively. A user was active on someday if they made at least one activity on that day.

Return the result table in any order.

https://leetcode.com/problems/user-activity-for-the-past-30-days-i/description/

 

30일 동안 활성상태인 유저 수 구하기. 적어도 한 가지 이상 활동 한 유저는 활성상태 포함.

 

(정답1) Input 테이블이 Null 없이 activity_date 에 모두 activity_type 이 들어있는데, 어떻게 구분하는 걸까..
 
select activity_date as day,
           count(distinct user_id) as active_users
from Activity
where activity_date between '2019-06-28' and '2019-07-27'
group by 1

 

(정답2)
select activity_date as day,
           count(distinct user_id) as active_users
from Activity
where datediff('2019-07-27', activity_date) < 30 and datediff('2019-07-27', activity_date) >=0
group by activity_date

 

datediff ( 날짜_부분, 시작_날짜, 끝 날짜, [주_시작])

 

activity_date으로도 되네 ? 

where datediff(log_dateactivity_date< 30 and datediff(log_dateactivity_date>=0

이렇게 하는 경우는  날짜가 유동적일 때 씀.

log_date 기준으로 acitivity_date이 30 미만이고, 0보다 클 때 (-1 이하는 미래날짜가 들어갈 때니까, 마지막 날짜 기준 0보다 크다 까지가 30일까지임) 

 

datediff hive 

presto

dated_diff( unit, timestamp1, timestemp2)

 

(참고) datediff 함수

https://brunch.co.kr/@cheonmyung/97

 

[DATE 함수] DATEDIFF

태블로의 날짜 함수 중 “DATEDIFF” 함수에 대해서 알아보자. 1. DATEDIFF 함수는 무엇인가? DATEDIFF 함수는 두 날짜 사이의 차이를 반환하는 함수이다. DATEDIFF(날짜_부분, 시작_날짜, 끝_날짜, [주_시작]

brunch.co.kr

 

 

 

 

 

'Data Analyst > daily' 카테고리의 다른 글

[QCC 2회차]  (0) 2024.11.15
[데이터분석] 코드카타 101  (0) 2024.11.14
[데이터분석] 코드카타 99  (0) 2024.11.11
[데이터 분석] 코드카타 98  (0) 2024.11.08
[데이터분석] 코드카타 97  (4) 2024.11.06