'Treffer' ist ein sich wiederholender Datensatz. So ist 'hits.customDimensions' unter 'Treffer'.Wie Sie einen sich wiederholenden Datensatz innerhalb eines sich wiederholenden Datensatzes in Google Big Query suchen Standard SQL
Ich habe diese Google Big Abfrage in Standard-SQL:
SELECT
visitNumber,
h.time, h.hour, h.minute,
h.page.PagePath,
h.customDimensions.value as language, /* not working */
from
`550335029.ga_sessions_*` , UNNEST(hits) as h
where
h.customDimensions.index = 3 /* not working */
ich für die richtige Syntax suchen hits.customDimensions.index und hits.customDimensions.value zuzugreifen. Wenn ich die zwei "nicht funktionierenden" Zeilen entferne, wird die Abfrage ausgeführt.
Fehler sieht wie folgt aus:
GenericGBQException: Reason: invalidQuery, Message: Cannot access field customDimensions on a value with type ARRAY<STRUCT<hitNumber INT64, time INT64, hour INT64, ...>> at [40:46]
Ich bin interessiert zu wissen, was UNNEST hier vermieden wurde, auf den ersten Blick sieht es so aus, als ob Sie die gleichen UNNESTING wie oben tun, nur eine von ihnen in eine Unterabfrage verschieben. –
Wenn Sie das UNNEST auf das gesamte Dataset anwenden, werden alle Schlüssel außerhalb des nicht vorhandenen Arrays dupliziert. Indem Sie das tun, was ich getan habe, vermeiden Sie das, d. H. Nur das Array 'h.customDimension' ist nicht verschachtelt und es findet keine Duplizierung von externen Schlüsseln statt. –