Wie wähle ich die neueste Partition in der BigQuery-Tabelle aus?

Ich versuche, Daten aus der neuesten Partition in einer BigQuery-Tabelle mit Datumspartitionierung auszuwählen, aber die Abfrage liest weiterhin Daten aus der gesamten Tabelle.

Ich habe versucht (soweit ich weiß, unterstützt BigQuery nichtQUALIFY):

SELECT col FROM table WHERE _PARTITIONTIME = (
  SELECT pt FROM (
    SELECT pt, RANK() OVER(ORDER by pt DESC) as rnk FROM (
      SELECT _PARTITIONTIME AS pt FROM table GROUP BY 1)
    )
  )
  WHERE rnk = 1
);

Aber das funktioniert nicht und liest alle Zeilen.

SELECT col from table WHERE _PARTITIONTIME = TIMESTAMP('YYYY-MM-DD')

wo'YYYY-MM-DD' ist ein bestimmtes Datum, das funktioniert.

Ich muss dieses Skript jedoch in Zukunft ausführen, aber die Tabellenaktualisierung (und das_PARTITIONTIME) ist unregelmäßig. Gibt es eine Möglichkeit, Daten nur von der neuesten Partition in BigQuery abzurufen?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage