Sobes.tech
Middle

Как да изведем актуалния адрес и цена за всяко обявление в SQL?

sobes.tech AI

Отговор от 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;

Това ще позволи да се получи за всяко обявление най-актуалният адрес и цена.