【问题标题】:SQL Cumulative Count with BigQuery for active使用 BigQuery 进行活动的 SQL 累积计数
【发布时间】:2022-01-19 06:54:34
【问题描述】:
我想知道如何将行日期截断为周。当前数据是
| Ad Name |
Launch Date |
Last Seen |
| Ad 1 |
9 Dec, 2021 |
16 Dec, 2021 |
| Ad 2 |
1 Dec, 2021 |
9 Dec, 2021 |
| Ad 3 |
1 Dec, 2021 |
31 Dec, 2021 |
期望的输出是,想象 12 月有 4 周。提供的日期仅为示例,它们将由 SQL 函数 date_trunc 自动生成
| Week |
Active Ads |
| Dec Date 1-7 |
2 |
| Dec Date 7-14 |
3 |
| Dec Date 14-21 |
2 |
| Dec Date 21-30 |
1 |
【问题讨论】:
标签:
sql
date
group-by
google-bigquery
bucket
【解决方案1】:
考虑以下方法
select
date_trunc(seen_day, week) week_start,
last_day(seen_day, week) week_end,
count(distinct ad_name) Active_Ads
from your_table,
unnest(generate_date_array(
parse_date('%d %B, %Y', launch_date),
parse_date('%d %B, %Y', last_seen)
)) seen_day
group by 1, 2
如果应用于您问题中的样本数据 - 输出是