Ich habe solche Tabellenstruktur. Wählen Sie durch mehrere Wert in bigquery
Jetzt muss ich Ebenen finden, die mehr als 90 in "Chips" und mehr als 1000 in "Münzen" haben. Wie kann ich diese Anfrage stellen?
Ich habe solche Tabellenstruktur. Wählen Sie durch mehrere Wert in bigquery
Jetzt muss ich Ebenen finden, die mehr als 90 in "Chips" und mehr als 1000 in "Münzen" haben. Wie kann ich diese Anfrage stellen?
Unten ist für BigQuery Standard SQL und gibt Ihnen alle Zeilen mit mehr als 90 "Chips" und mehr als 1000 "Münzen".
#standardSQL
SELECT *
FROM yourTable
WHERE (
SELECT COUNTIF((key = 'chips' AND value.int_value > 90)
OR (key = 'coins' AND value.int_value > 1000))
FROM UNNEST(event_dim.params)
) > 1
Hinweis: obige Abfrage übernimmt Schlüssel Einzigartigkeit innerhalb jeder Reihe - die höchstwahrscheinlich ein Fall ist.
Unter Variation gibt Ihnen alle Ebenen und Anzahl der jeweiligen Reihen mit mehr als 90 „Chips“ und mehr als 1000 „Münzen“
#standardSQL
SELECT param.value.int_value, COUNT(1) AS cnt
FROM yourTable, UNNEST(event_dim.params) AS param
WHERE (
SELECT COUNTIF((key = 'chips' AND value.int_value > 90)
OR (key = 'coins' AND value.int_value > 1000))
FROM UNNEST(event_dim.params)
) > 1
AND param.key = 'level'
GROUP BY 1
Dies könnte Ihnen helfen:
SELECT
*
FROM data
WHERE ((SELECT COUNTIF((key = 'chips' AND value.int_value > 90)) FROM UNNEST(event_dim.params)) > 0 AND (SELECT countif((key = 'coins' AND value.int_value > 1000)) FROM UNNEST(event_dim.params)) > 0)
Wo Daten ist Ihre Eingabezeile:
WITH data AS(
SELECT STRUCT<name string, params ARRAY<struct<key string, value STRUCT<string_value string, int_value int64> >>> ('level_up', [STRUCT('level' as key, STRUCT('null' as string_value, 19 as int_value) as value), STRUCT('firebase_event_origin' as key, struct('app' as string_value, null as int_value) as value), struct('chips' as key, STRUCT('null' as string_value, 97 as int_value) as value), STRUCT('coins' as key, struct('null' as string_value, 4085 as int_value) as value), STRUCT('powerups' as key, STRUCT('null' as string_value, 19 as int_value) as value)]) event_dim
)
Beachten Sie, dass dies die Standard SQL Version von BigQuery verwenden.