Sobes.tech
Middle

Como exibir o endereço atual e o preço para cada anúncio em SQL?

sobes.tech IA

Resposta da IA

Para exibir o endereço e o preço atuais de cada anúncio em SQL, é necessário definir o que significa "atual" — geralmente, a última entrada por data ou por versão para cada anúncio.

Suponha que exista uma tabela ads com colunas: ad_id, address, price, updated_at.

Exemplo de consulta que, para cada anúncio, seleciona o registo com a data de atualização máxima:

SELECT ad_id, address, price
FROM ads a
WHERE updated_at = (
    SELECT MAX(updated_at)
    FROM ads
    WHERE ad_id = a.ad_id
);

Se a base suporta funções de janela, pode usar:

SELECT ad_id, address, price
FROM (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY ad_id ORDER BY updated_at DESC) as rn
    FROM ads
) sub
WHERE rn = 1;

Isto permitirá obter para cada anúncio o endereço e o preço mais recentes.