google-bigquery - 对数组求和页面浏览量
问题描述
我已经尝试解决一个问题几天了,但我完全陷入困境:
我确实有一个来自 Snowplow Analytics 的基本综合浏览量表。我正在从中创建一个会话表。该表具有用于构造我的数据的数组。
现在,当我进行 sum(count_page_views) 时,总数是正确的。
一旦我添加了日期维度 date(session_start),这一天的总和就完全错误了。
这就是表应该的样子。(在浏览量 ID 上计数不同)
我很确定我误解了数组求和和 array_length 的工作方式,但我不知道,出了什么问题......
会话表的 SQL
with all_page_views as (
select
*
from
`page_views_table`
),
sessions_agg as (
select
pv.session_id,
array_agg(
pv
order by
pv.page_view_in_session_index
) as all_pageviews
from
all_page_views as pv
group by
1
),
sessions_agg_xf as (
select
session_id,
all_pageviews,
(
select
struct(
min(page_view_start) as session_start,
max(page_view_end) as session_end
)
from
unnest(all_pageviews)
) as timing
from
sessions_agg
),
sessions as (
select
timing.session_start,
timing.session_end,
array_length(all_pageviews) as count_page_views
from
sessions_agg_xf
)
select
sum(count_page_views )
from
sessions
where date(session_start) = "2020-02-01"
解决方案
我相信我在其他地方发现了问题。Snowplow 中有一个错误没有重置会话 ID,所以我的会话是错误的......
https://github.com/snowplow/snowplow-javascript-tracker/issues/718
推荐阅读
- pandas - 如何在数据框的任何列中删除特定值?
- phpstorm - PhpStorm HTML 快捷方式
- firebase - 如何在之前创建的文档中添加字段?
- android - 企业内部的管理 API 和应用程序分发
- javascript - Javascript curl 等价物
- c# - 如何加密和解密多个文件到一个文件?
- google-api - 从另一个 Google Doc 更新 Google Doc 的内容而不创建新文件
- python - AttributeError:Django、Python 中的模块
- java - onCreate() 方法被跳过
- javascript - 从 Hypercube Qlik Sense 混搭中选择尺寸