Sobes.tech
Middle

Kako prikazati trenutnu adresu i cenu za svako oglas u SQL?

sobes.tech АИ

Одговор од АИ

Да бисте приказали актуалну адресу и цену за сваки оглас у 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;

Ово ће омогућити да се за сваки оглас добије најновија адреса и цена.