Моя цель - отфильтровать всех посетителей, проанализировать только клиентов (которые находятся в customDimension.index =2
, а затем дополнительно отфильтровать только определенные типы просмотров страниц для клиентов.
SELECT customDimensions.value AS CustomerID,
SUM(totals.pageviews) as page_views,
SUM(CASE WHEN hits.type = 'PAGE' AND hits.contentGroup.contentGroup2 = 'important' THEN 1 ELSE 0 END) AS important_pageviews
FROM `xxxxxxxx.ga_sessions_20180415`
WHERE customDimensions.index = 2
GROUP BY CustomerID
Я получаю сообщение об ошибке (используя StandardSQL):
Error: Cannot access field index on a value with type
ARRAY<STRUCT<index INT64, value STRING>> at [5:24]
Для устаревшего SQL:
Ошибка: невозможно запросить перекрестное произведение повторяющихся полей customDimensions.index и hits.contentGroup.contentGroup2.
Изменить:
SELECT cd.value AS CustomerID,
SUM(totals.pageviews) as page_views,
SUM(CASE WHEN hits.type = 'PAGE' AND hits.contentGroup.contentGroup2 = 'important' THEN 1 ELSE 0 END) AS important_pageviews
FROM `xxxxxxxx.ga_sessions_20180415`,
UNNEST(customDimensions) AS cd
WHERE cd.index = 2
GROUP BY CustomerID
возвращает:
Error: Cannot access field type on a value with type ARRAY<STRUCT<hitNumber INT64, time INT64, hour INT64, ...>> at [3:20]
Я попытался исправить строку 3:20, используя UNNEST(hits.type) = 'PAGE' AND UNNEST(hitscontentGroup.contentGroup2) = 'important'
, что дает Error: Syntax error: Unexpected keyword UNNEST at [3:15]
FROM xxxxxxxx.ga_sessions_20180415, unnset(customDimensions) as cd where cd.index = 2
(также вы можете отменить вложенность в подзапросе, чтобы сохранить количество строк) - person dani herrera   schedule 16.04.2018