1
resposta

[Dúvida] Selecionar registro pela data mais recente

Olá, pessoal!

Estou desenvolvendo uma consulta no Big Query em que tenho vários registros com a mesma ID, mas com datas diferentes, daí então quero que a minha consulta retorne apenas os registros com a data mais recente. Por exemplo:

PRODUTO EMISSÃO

  1. Milho 01/04/2013
  2. Milho 02/04/2013
  3. Milho 05/05/2013
  4. Ervilha 06/03/2013
  5. Ervilha 13/05/2013
  6. Café 22/06/2013
  7. Café 25/05/2013

Depois da consulta:

PRODUTO EMISSÃO

  1. Milho 05/05/2013
  2. Ervilha 13/05/2013
  3. Café 22/06/2013

Alguém ai saberia como eu poderia fazer?

1 resposta

Boa tarde Hemerson.

Você vai precisar quebrar a consulta para priorizar um produto a partir da data mais recente usando with, segue exemplo:

with cte_produto as (
                                        select produto, data, row_number()over(partition by produto order by data desc) as priorizacao
                                        from tabela_produto
                                    )
select produto, data
from  cte_produto
where priorizacao = 1

Com o row_number vc particiona a consulta a usando com ordenação a data decrescente, e vc usa o with para fazer o particionamento dentro ("em memória") e do lado de fora seleciona só a primeira priorização "priorizacao = 1".