Diese Abfrage:BigQuery Standard-SQL-Abfrage gibt eine falsche Antwort
SELECT x
FROM dataset.table_a
WHERE x NOT IN (SELECT x FROM dataset.table_b)
Null zurückgibt Datensätze obwohl:
Feld
x
intable_a
1.326.932 verschiedene StringFeldwerte enthält
x
intable_b
enthält 18.885 verschiedene Zeichenfolgenwerte
Ich verstehe nicht warum. Darüber hinaus gibt diese Abfrage in BigQuery-Legacy-SQL die richtige Antwort zurück.
Können Sie ein Beispiel der Daten geben zu optimieren? Ist es gepolstert? Wenn du NICHT IN zu IN änderst, was bekommst du für ein Ergebnis? –
Der Migrationsleitfaden wurde jetzt aktualisiert auf [dokumentieren Sie den Unterschied zwischen Legacy- und Standard-SQL] (https://cloud.google.com/bigquery/docs/reference/standard-sql/migrating-from-legacy-sql#not_in_conditions_and_null). . –