Сейчас здесь.Я пытаюсь найти среднее время, затрачиваемое пользователями на нашем сайте, чтобы перейти с одной страницы (получение цитаты) на другую (подача заявки).Использование данных Google Analytics в BigQuery.Я хотел бы разделить это по каналам, но изначально я просто пытаюсь определить время для каждого пользователя.
Я пробовал внутреннее и левое соединение, но оба возвращают таблицу * Таблица результатовОба подзапроса выглядят корректно при запуске по отдельности (кавычки возвращают 925, приложения возвращают 117), но при присоединении к ним я получаю дубликаты.
Закомментированные биты предназначены для окончательного запроса и могут игнорироваться, в том числе и дляконтекст.
-- SELECT
-- channelGrouping,
-- ROUND(AVG(timeQ2A/60000),2) AS avgMinsQ2A
-- FROM (
SELECT
CONCAT(CAST(visitId AS STRING),'_',fullVisitorId) AS sessionId,
apps.channelGrouping,
(quote.quoteTime) as quoteTime,
(CAST(hits.time AS INT64)) AS appTime,
(CAST(hits.time AS INT64) - (quote.quoteTime)) AS timeQ2A
FROM
`project.dataset.ga_sessions_20190923` AS apps,
UNNEST(hits) AS hits
INNER JOIN (
SELECT
MIN(CAST(hits.time AS INT64)) AS quoteTime,
CONCAT(CAST(visitId AS STRING),'_',fullVisitorId) AS sessionId
FROM
`project.dataset.ga_sessions_20190923`,
UNNEST(hits) AS hits
WHERE
hits.type = "PAGE"
AND hits.page.pagePath = "/get-a-quote/"
AND hits.time > 0
GROUP BY
2) AS quote
ON
sessionId = quote.sessionId
WHERE
hits.type = "PAGE"
AND hits.page.pagePath = "/application-complete/"
GROUP BY
1,
2,3,4
ORDER BY 1,2,3
-- )
-- GROUP BY
-- 1
-- ORDER BY
-- 2 DESC
Я ожидал бы получить только 117 строк (все пользователи, которые подали заявки, будут в таблице котировок, поэтому внутренние и левые должны быть одинаковыми), но я получаю 108k.
Любая помощь очень ценится.