【问题标题】:Big Query-how to compare the data weekly by pageviews,users in Big queryBig Query-如何在 Big Query 中按浏览量、用户每周比较数据
【发布时间】:2021-01-08 11:21:18
【问题描述】:

我正在尝试每周比较 Big Query 中的浏览量、用户数和会话数 所以我想将 2019 年(2 月 1 日至 2 月 14 日)的数据与 2020 年(2 月 1 日至 2 月 14 日)的数据进行比较,并大致预测 2021 年(2 月 1 日至 2 月 14 日)

你能帮我看看如何在一个查询中查看每周数据比较吗?

所以下面我只看到每天的数据,我想看到的是 2019 年 2 月 1 日至 2 月 14 日的每周数据,并以相同的方式查看 2020 年和 2021 年数据的每周数据

【问题讨论】:

  • 请提供一些示例数据和预期输出。
  • @Popeye 在上面添加了一张图片
  • "compare" 不是 SQL 操作。请说明你要实现的逻辑和你想要的结果。
  • @GordonLinoff 我的意思是我想查看 2019 年、2020 年的每周统计数据以及同一时间段的 2021 年预测数据。
  • @DivyangJain 。 . .请解释“预测”值的来源。没有 SQL 关键字“predict”。

标签: sql google-bigquery


【解决方案1】:

在标准 SQL 中尝试以下操作:

with data as (
  select 1 as row, 'Life' as sitesection, '20190201' as `date`,   21940 as Pageviews, 19429 Users
  union all
  select 2 as row, 'Life' as sitesection, '20190202' as `date`,   29283 as Pageviews, 25910 Users
  union all
  select 1 as row, 'Life' as sitesection, '20200201' as `date`,   5 as Pageviews, 2 Users
  union all
  select 2 as row, 'Life' as sitesection, '20200202' as `date`,   6 as Pageviews, 3 Users
)
select  extract(YEAR from PARSE_DATE("%Y%m%d", date)) as Year, 
        extract(WEEK from PARSE_DATE("%Y%m%d", date)) as week, 
        sum(Pageviews) as totl_pageviews, 
        sum(Users) as total_users from data
group by extract(YEAR from PARSE_DATE("%Y%m%d", date)), extract(WEEK from PARSE_DATE("%Y%m%d", date)) 

它显示了按年和周分组的页面浏览量和用户总数。我尝试在WITH 子句中模拟您图片中的数据。

【讨论】:

    【解决方案2】:

    Kyrylo 的上述回答很好,但对于大多数用途,您可能希望显示一周的第一天,也许是这样:

    with data as (
      select 1 as row, 'Life' as sitesection, date('2019-02-01') as `date`, 21940 as Pageviews, 19429 Users
      union all
      select 2 as row, 'Life' as sitesection, date('2019-02-02') as `date`, 29283 as Pageviews, 25910 Users
      union all
      select 1 as row, 'Life' as sitesection, date('2020-02-01') as `date`, 5 as Pageviews, 2 Users
      union all
      select 2 as row, 'Life' as sitesection, date('2020-02-02') as `date`, 6 as Pageviews, 3 Users
    )
    select  DATE_TRUNC(`date`, week) as first_day_of_week,
            sum(Pageviews) as totl_pageviews, 
            sum(Users) as total_users from data
    group by first_day_of_week
    

    【讨论】:

      猜你喜欢
      • 2017-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多