Я пытаюсь получить список клиентов, совершивших хотя бы одну покупку в определенный день. При работе с подписью под номером bigquery ниже вы выбираете дату и customer_id. Тем не менее, город всегда возвращает null, хотя я знаю, что данные существуют.Выбор пользовательских измерений с большим количеством ударов с помощью bigquery
Нужно ли использовать другой подход при выборе нескольких пользовательских измерений с ограниченным доступом?
SELECT date
,CASE WHEN hits.customdimensions.index = 5
THEN hits.customdimensions.value END as customer_id
,CASE WHEN hits.customdimensions.index = 50
THEN hits.customdimensions.value END as city
FROM (TABLE_DATE_RANGE([16475821.ga_sessions_],
TIMESTAMP('2016-09-01'), TIMESTAMP('2016-09-07'))
GROUP BY 1, 2, 3
HAVING sum(case when hits.eventInfo.eventAction = 'purchase' then 1 end) > 0
and customer_id is not null
Works! Какова рациональность учета рекордных агрегатов? – Kieran
Это способ извлечь необходимые вложенные элементы из каждой записи (строки). Используя max(), вы эффективно «извлекаете» только то, что вам нужно, и игнорируете отдых. И используя sum() вы считаете покупки внутри записи. Вот как я увидел ваши данные и соответственно написал запрос –