Como escolher a partição mais recente na tabela BigQuery?
Estou tentando selecionar dados da partição mais recente em uma tabela do BigQuery particionada por data, mas a consulta ainda lê dados da tabela inteira.
Eu tentei (até onde sei, o BigQuery não suportaQUALIFY
):
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
);
Mas isso não funciona e lê todas as linhas.
SELECT col from table WHERE _PARTITIONTIME = TIMESTAMP('YYYY-MM-DD')
Onde'YYYY-MM-DD'
é uma data específica que funciona.
No entanto, preciso executar esse script no futuro, mas a atualização da tabela (e o_PARTITIONTIME
) é irregular. Existe uma maneira de extrair dados apenas da partição mais recente no BigQuery?