Я пытаюсь решить проблему уже пару дней, но я полностью застрял:
У меня есть базовая таблица просмотров страниц c из Snowplow Analytics , Я создаю сессионный стол из этого. В этой таблице есть массивы для структурирования моих данных.
Теперь, когда я делаю сумму (count_page_views), итоги верны.
Как только Я добавляю дату измерения даты (session_start), сумма для этого дня совершенно неверна.
Вот как должна выглядеть таблица. (Подсчет различен по идентификатору просмотра страницы)
Вот как это выглядит с моей сессионной таблицей SQL:
Я почти уверен, что неправильно понимаю способ суммирования массивов и 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"