0
Suchen Sie einen Weg, um ein "nicht in wie" mit bigquery zu tun. Ich habe versucht,Bigquery nicht in gleichwertigem
SELECT
e.*
FROM
T1 AS e
JOIN EACH T2 AS a
ON
e.filename NOT LIKE CONCAT(a.filename, "%");
oder
SELECT
e.*
FROM
T1 AS e
JOIN T2 AS a
ON
REGEXP_MATCH(e.filename, CONCAT(a.filename, ".*"))
Geben Sie den gleichen Fehler
ON clause must be AND of = comparisons of one field name from each table, with all field names prefixed with table name. .
Jede Idee?
Aber Vorsicht verwenden! Filtern Sie beide Seiten des Joins so weit wie möglich vor dem Join. Und wo immer es möglich ist, fügen Sie * etwas * in die ON-Klausel ein, damit BQ Ihre Daten partitionieren kann, selbst wenn Sie nach dem Join weitere Filterung durchführen müssen. –
Das stimmt. Sollte dies in meiner Antwort erwähnt werden. Wenn Sie so früh wie möglich so viel wie möglich filtern, verringert sich Ihr Abrechnungszeitraum. Verwenden Sie NUR Felder/Spalten, die Sie benötigen (zumindest in den meisten Fällen auswählen) - reduziert Ihre totalBytesBilled. Wie Sie wissen, ist Ihre fakturierungskosten = totalBytesBilled x billingTier. Sehen Sie mehr Details zu https://cloud.google.com/bigquery/pricing#high-compute –
e.filename SELECT, a.file_ VON T1 AS e CROSS JOIN T2 AS eine wo a.file_ nicht wie CONCAT (e.filename, "%") LIMIT 10 gib mir Ergebnis, aber weiß nicht, ob das der Gute ist. :( –