2016-05-13 2 views
3

Я пытаюсь запросить различные пользовательские измерения в области продукта в Google BigQuery. В результате получается нечто вроде этого:BigQuery - выбор нескольких пользовательских измерений в области продуктов в BigQuery

Current set of results

Я хотел бы получить объединенные строки в результатах, что-то вроде этого:

Expected set of results

Возможно ли это с помощью запроса в BigQuery?

Редактировать

Пожалуйста, смотрите существующий запрос, который я использовал:

SELECT IF(hits.product.customDimensions.index=21, hits.product.customDimensions.value, NULL) cd21, 
IF(hits.product.customDimensions.index=22, 
hits.product.customDimensions.value, NULL) cd22 
FROM [<table_id>.ga_sessions_20160510] 
WHERE hits.product.productListName LIKE "%test%" 
    AND hits.product.isImpression IS TRUE 
    AND hits.product.customDimensions.index IN (21,22) 
+0

Поделитесь пожалуйста существующий запрос, чтобы мы могли улучшить его. – Pentium10

+0

Пожалуйста, см. Существующий запрос, который я использовал: SELECT IF (hits.product.customDimensions.index = 21, hits.product.customDimensions.value, NULL) cd21, IF (hits.product.customDimensions.index = 22, hits .product.customDimensions.value, NULL) CD22 ОТ [ .ga_sessions_20160510] ГДЕ hits.product.productListName LIKE "% тест%" И hits.product.isImpression ПРАВДА И hits.product.customDimensions.index IN (21,22) – Sarjak

ответ

1

Я переписал к примеру, используя общественный набор данных:

SELECT fullVisitorId, visitId, hits.hitNumber, hits.time, 
    max(IF(hits.customDimensions.index = 1, hits.customDimensions.value, NULL)) within RECORD cd21, 
    max(IF(hits.customDimensions.index = 2, hits.customDimensions.value, NULL)) within RECORD cd22, 
FROM 
    [google.com:analytics-bigquery:LondonCycleHelmet.ga_sessions_20130910] 
WHERE 
    hits.customDimensions.index IN (1,2) 
and fullVisitorId = '712553853382222331' 

Выход есть:

+-----+--------------------+------------+----------------+-----------+-------+--------+--+ 
| Row | fullVisitorId  | visitId | hits_hitNumber | hits_time | cd21 | cd22 | | 
+-----+--------------------+------------+----------------+-----------+-------+--------+--+ 
| 1 | 712553853382222331 | 1378804218 | 1    | 0   | Vests | Bronze | | 
+-----+--------------------+------------+----------------+-----------+-------+--------+--+ 
| 2 | 712553853382222331 | 1378804218 | 2    | 9611  | Vests | Bronze | | 
+-----+--------------------+------------+----------------+-----------+-------+--------+--+ 
| 3 | 712553853382222331 | 1378804218 | 3    | 10664  | Vests | Bronze | | 
+-----+--------------------+------------+----------------+-----------+-------+--------+--+ 
| 4 | 712553853382222331 | 1378804218 | 5    | 25377  | Vests | Bronze | | 
+-----+--------------------+------------+----------------+-----------+-------+--------+--+ 

Как вы можете заметить, он использует синтаксис WITHIN для чтения нескольких записей из одного и того же RECORD. Таким образом, вы получили агрегирование с областью действия.

Обратите внимание, что данные GA могут иметь несколько обращений, и вам может понадобиться еще один агрегат этого вывода, если вы хотите сохранить только одну строку.


Команда Google Analytics предоставляет образец данных, который вы можете использовать для понимания природы генерируемых данных. Вы можете добавить эти данные в свой вид в пользовательском интерфейсе BigQuery, добавив проект google.com:analytics-bigquery, используя меню проекта (выпадающее меню рядом с названием проекта, «Переключиться на проект», «Проект отображения»). В качестве альтернативы вы можете перейти к ссылке на интерфейс BigQuery https://bigquery.cloud.google.com/project/google.com:analytics-bigquery После добавления проекта на панели навигации появляется образец данных (LondonCycleHelmet). Он содержит две таблицы:

  • ga_sessions_20130910
  • refunds_201309
+0

Ответ помогает. Тем не менее, данные, которые я получаю, имеют несколько значений CD в одном и том же файле hitNumber. Поскольку это впечатления от продукта, у нас это так. Что это делает, так это то, что функция MAX дает мне только самое высокое значение, а не все. 4. Есть ли способ достичь этого? – Sarjak

+0

С запросом, который я ранее использовал, я получаю http://i.imgur.com/r2rYpJY.png. С MAX по вашему запросу я получаю http://i.imgur.com/2DlJ642.png. – Sarjak

+0

замените MAX на group_concat.Я просто использовал в качестве примера – Pentium10

Смежные вопросы