В BigQuery у меня есть набор данных из Google Analytics для уровня попадания, содержащий, среди прочего: date
, fullVisitorId
, visitId
, transactionRevenue
и pageHome
(независимо от того, является ли страница кем-тона домашней странице или нет).Для каждого посетителя я хочу вычислить итоговую сумму pageHome
, пока не будет сделана транзакция .Если сделка сделана, то transactionRevenue
- это число, в противном случае - ноль.Для примера, пожалуйста, см. Прикрепленное изображение.
Пример таблицы с итоговой суммой
Я пробовал сумму по разделу на fullVisitorId
и упорядочение на visitId
,Тем не менее, я не уверен, как сбросить, когда transactionId
не является нулевым.
SELECT
date,
fullVisitorId,
visitId,
visitNumber,
transactionRevenue,
pageHome,
SUM(pageHome) OVER(PARTITION BY fullVisitorId ORDER BY visitId ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS sumpageHome
Этот код вычисляет итоговую сумму для каждого посетителя, но он еще не сбрасывается после выполнения транзакции.