2016-05-13 18 views
3

Ich versuche, mehrere benutzerdefinierte Dimensionen für Produktbereiche in Google BigQuery abzufragen. Das Ergebnis ist so etwas wie diese:BigQuery - Auswählen mehrerer benutzerdefinierter Dimensionen im Produktbereich in BigQuery

Current set of results

Ich mag würde die kombinierten Zeilen in den Ergebnissen, so etwas bekommen:

Expected set of results

Ist dies möglich, mit einer Abfrage in BigQuery?

bearbeiten

Bitte sehen Sie die vorhandene Abfrage, die ich verwendet:

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

Teilen Sie bitte Ihre vorhandene Abfrage so können wir es verbessern. – Pentium10

+0

Bitte beachten Sie die vorhandene Abfrage, die ich verwendet habe: SELECT IF (hits.product.customDimensions.index = 21, hits.product.customDimensions.value, NULL) cd21, IF (hits.product.customDimensions.index = 22, Treffer .product.customDimensions.value, NULL) CD22 VON [ .ga_sessions_20160510] WHERE hits.product.productListName LIKE "% test%" UND hits.product.isImpression TRUE UND hits.product.customDimensions.index IS IN (21,22) – Sarjak

Antwort

1

ich auf ein Beispiel öffentliche Datensatz mit neu geschrieben:

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' 

Die Ausgabe lautet:

+-----+--------------------+------------+----------------+-----------+-------+--------+--+ 
| 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 | | 
+-----+--------------------+------------+----------------+-----------+-------+--------+--+ 

Wie Sie vielleicht bemerken, verwendet es die WITHIN-Syntax, um mehrere Einträge aus demselben RECORD zu lesen. Auf diese Weise erhielten Sie eine Bereichsaggregation.

Bitte beachten Sie, dass bei GA-Daten möglicherweise mehrere Treffer vorhanden sind und diese Ausgabe möglicherweise weiter aggregiert werden muss, wenn Sie nur eine Zeile beibehalten möchten.


Das Google Analytics-Team stellt ein Beispieldatenset bereit, mit dem Sie die Art der generierten Daten verstehen können. Sie können diese Daten zu Ihrer Ansicht in der BigQuery-Benutzeroberfläche hinzufügen, indem Sie das Projekt google.com:analytics-bigquery über das Projektmenü hinzufügen (die Dropdown-Liste neben dem Projektnamen, Wechseln zu Projekt ➪ Projekt anzeigen). Alternativ können Sie zum BigQuery-UI-Link navigieren. https://bigquery.cloud.google.com/project/google.com:analytics-bigquery Nachdem Sie das Projekt hinzugefügt haben, wird das Beispiel-Dataset (LondonCycleHelmet) im Navigationsbereich angezeigt. Es enthält zwei Tabellen:

  • ga_sessions_20130910
  • refunds_201309
+0

Die Antwort hilft. Die Daten, die ich abrufe, haben jedoch mehrere CD-Werte in derselben HitNumber. Da es sich um Produktimpressionen handelt, haben wir es so. Was das bedeutet ist, dass MAX-Funktion mir nur den höchsten Wert und nicht alle 4 gibt. Gibt es einen Weg, dies zu erreichen? – Sarjak

+0

Mit der Abfrage, die ich früher verwendet habe, bekomme ich http://i.imgur.com/r2rYpJY.png. Mit MAX nach Ihrer Anfrage, bekomme ich http://i.imgur.com/2DlJ642.png. – Sarjak

+0

ersetzen Sie MAX durch group_concat.Ich habe gerade als Beispiel verwendet – Pentium10