Sobes.tech
Middle

Ako zobraziť aktuálnu adresu a cenu pre každé inzerát v SQL?

sobes.tech AI

Odpoveď od AI

Ak chcete zobraziť aktuálnu adresu a cenu pre každé inzerát v SQL, je potrebné definovať, čo znamená "aktuálne" — zvyčajne je to posledný záznam podľa dátumu alebo verzie pre každý inzerát.

Predpokladajme, že existuje tabuľka ads so stĺpcami: ad_id, address, price, updated_at.

Príklad dotazu, ktorý pre každý inzerát vyberie záznam s maximálnym dátumom aktualizácie:

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

Ak databáza podporuje okienkové funkcie, môžete použiť:

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ískať pre každý inzerát najnovšiu adresu a cenu.