Ich versuche, Zeilen mit doppelten Feldern in einem Array von Strukturen innerhalb einer Google BigQuery-Tabelle zu finden, mit dem neuen Standard SQL. Die Daten in der Tabelle (vereinfacht), wobei jede Zeile ein bisschen wie folgt aussieht:Arbeiten mit Structs in Arrays für neue BigQuery Standard SQL
{
"Session": "abc123",
"Information" [
{
"Identifier": "e8d971a4-ef33-4ea1-8627-f1213e4c67dc"
},
{
"Identifier": "1c62813f-7ec4-4968-b18b-d1eb8f4d9d26"
},
{
"Identifier": "e8d971a4-ef33-4ea1-8627-f1213e4c67dc"
}
]
}
Mein Endziel ist es, die Zeilen anzuzeigen, die Information
Einheiten mit doppelten Identifier
Werte vorhanden sind. die meisten Abfragen ich jedoch versuchen, eine Fehlermeldung der folgenden Form erhalten:
Cannot access field Identifier on a value with type ARRAY<STRUCT<Identifier STRING>>
Gibt es einen Weg, um mit den Daten arbeiten innerhalb eines STRUCT
innerhalb eines ARRAY
?
Hier ist mein erster Versuch einer Abfrage:
SELECT
Session,
Information
FROM
`events.myevents`
WHERE
COUNT(DISTINCT Information.Identifier) != ARRAY_LENGTH(Information.Identifier)
LIMIT
1000
Und ein anderer mit einer Unterabfrage:
SELECT
Session,
Information
FROM (
SELECT
Session,
Information,
COUNT(DISTINCT Information.Identifier) AS info_count_distinct,
ARRAY_LENGTH(Information) AS info_count
FROM
`events.myevents`
WHERE
COUNT(DISTINCT Information.Identifier) != ARRAY_LENGTH(Information.Identifier)
LIMIT
1000)
WHERE
info_count != info_count_distinct
präsentieren Sie Ihre Abfrage (auch wenn es erroring), damit wir weg von etwas anfangen! –
Sicher Sache! Bearbeitete die Frage, um zwei Versuche hinzuzufügen, die ich machte. – Aaron
Hattest du die Chance, meine Antwort zu prüfen/zu versuchen? –