Sobes.tech
Middle

Jak zobrazit aktuální adresu a cenu pro každé inzerát v SQL?

sobes.tech AI

Odpověď od AI

Chcete-li zobrazit aktuální adresu a cenu pro každé inzerát v SQL, je třeba definovat, co znamená "aktuální" — obvykle je to poslední záznam podle data nebo verze pro každý inzerát.

Předpokládejme, že existuje tabulka ads se sloupci: ad_id, address, price, updated_at.

Příklad dotazu, který pro každý inzerát vybere záznam s maximálním datem aktualizace:

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

Pokud databáze podporuje okénkové funkce, lze použít:

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;

Toto umožní získat pro každý inzerát nejnovější adresu a cenu.