简体   繁体   中英

Bigquery, how to count events group by week?

I just started working with Bigquery. Data comes from firebase and I noticed that I got the data each day, for example gara-e78a5.analytics_247657392.events_20221231 , gara-e78a5.analytics_247657392.events_20221230 etc....

Each row comes with an event_date like under this format 20221231

I want to count the number of people landing on our page each week, but I don't know I to group them by week.

I started something like this but I don't know to group it by week:

SELECT count(event_name) FROM app-xxxx.analytics_247657392.events_* where event_name = 'page_download_view' group by

Thanks in advance for your help

You can use the WEEK (or ISOWEEK) function.

WEEK: Returns the week number of the date in the range [0, 53]

More: https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions

Formats - https://cloud.google.com/bigquery/docs/reference/standard-sql/timestamp_functions#format_timestamp

This should work

select EXTRACT(ISOWEEK FROM(CAST(PARSE_DATE('%Y%m%d', <column>) as TIMESTAMP))) as week_of_year from <table>

Output

输出

Based on @Ronak, i found the solution.

SELECT week_of_year, sum(nb_download) as nb_download_per_week from (
SELECT DISTINCT EXTRACT (WEEK from (PARSE_DATE('%Y%m%d', event_date))) as week_of_year, count(event_name) as nb_download from `tabllle-e78a5.analytics_XXXXX.events_*` where event_name =    'landing_event_download_apk'  group by event_date) group by week_of_year

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM