Sobes.tech
Middle
35

Как вывести актуальный адрес и цену для каждого объявления в SQL?

Компании, где спрашивали
AvitoAvito

Ответ от нейросети

sobes.tech AI

Чтобы вывести актуальный адрес и цену для каждого объявления в SQL, нужно определить, что значит "актуальный" — обычно это самая последняя запись по дате или по версии для каждого объявления.

Предположим, есть таблица ads с колонками: ad_id, address, price, updated_at.

Пример запроса, который для каждого объявления выбирает запись с максимальной датой обновления:

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

Если база поддерживает оконные функции, можно использовать:

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;

Это позволит получить для каждого объявления самый свежий адрес и цену.