Как включение этих столбцов приводит к увеличению числа fullVisitorIds?Это не имеет смысла для меня.
Вы можете понять, почему, если вы выполняете свой внутренний запрос следующим образом:
SELECT
MAX(fullVisitorId) AS fullVisitorId,
h.page.pagePath as page_path,
trafficSource.source,
trafficSource.medium,
COUNT(DISTINCT(TRIM(fullVisitorId))) AS users,
COUNT(*) as sessions
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_20170101`, UNNEST(hits) h
WHERE h.page.pagePath = "/home"
and fullVisitorId = '9902321252073939460'
GROUP BY page_path, source, medium
, который возвращает эти результаты:
![enter image description here](https://i.stack.imgur.com/IxQGv.png)
Как вы можете видеть, поскольку пользователь приходит из 2 разных источников / средних , вы учитываете одного и того же пользователя дважды, что вызывает увеличение.
Одним из вариантов решения этой проблемы является использование агрегатной функции на источнике / носителе и удаление их из GROUP BY
следующим образом:
SELECT sum(users) as users, sum(sessions) as sessions FROM (
SELECT
h.page.pagePath as page_path,
<b>MAX(trafficSource.source) as source,
MAX(trafficSource.medium) as medium,</b>
COUNT(DISTINCT(TRIM(fullVisitorId))) AS users,
COUNT(*) as sessions
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_20170101`, UNNEST(hits) h
WHERE h.page.pagePath = "/home"
GROUP BY page_path
)
UNION ALL
SELECT sum(users) as users, sum(sessions) as sessions FROM (
SELECT
h.page.pagePath as page_path,
COUNT(DISTINCT(TRIM(fullVisitorId))) AS users,
COUNT(*) as sessions
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_20170101`, UNNEST(hits) h
WHERE h.page.pagePath = "/home"
GROUP BY page_path
)
Теперь количество пользователей одинаково:
![enter image description here](https://i.stack.imgur.com/QZUpI.png)