2016-07-09 13 views
1

Gibt es eine Möglichkeit zu überprüfen, ob ein BigQuery REPEATED-Feld einen bestimmten Wert enthält?BigQuery REPEATED-Feld enthält

Ich versuche, so etwas wie zu tun:

SELECT CASE WHEN column1 CONTAINS ("Test Value") THEN 1 ELSE 0 END FROM testdata 

wenn column1 ein Feld vom Typ STRING von Modus wiederholt. Ich habe mehrere Wiederholte Spalten der gleichen Art, so dass sie alle abzuflachen scheint langweilig.

Antwort

4

Versuchen unter

SELECT 
    id_or_whatever_key_column_you_have, 
    SUM(CASE 
     WHEN column1 CONTAINS ("Test Value") THEN 1 
     ELSE 0 END 
    ) WITHIN RECORD AS matches 
FROM testdata 

Ich erkennen - während Kopieren/Einfügen aus Ihrem Beispiel mir etwas mehr nach links, die ohne Verlust Ergebnis entfernt werden kann - so sagt es Ihnen nicht nur, wenn Sie Streichhölzer oder nicht (true/false), sondern gibt Ihnen der Spiele in jedem Datensatz zählen:

SELECT 
    id_or_whatever_key_column_you_have, 
    SUM(column1 CONTAINS ("Test Value")) WITHIN RECORD AS matches 
FROM testdata 

ich glaube, Danny Antwort ausgelöst dies in meinem Kopf: kann o)

3

Sieverwenden Um dies zu erreichen, z.B.

SELECT SOME(column1 CONTAINS ("Test Value")) WITHIN RECORD FROM testdata