Middle
Kuidas SQL-is näidata iga kuulutuse kehtiv aadress ja hind?
sobes.tech AI
Vastus AI-lt
Et näidata SQL-is iga reklaami aktualse aadressi ja hinda, tuleb määratleda, mida tähendab "aktiivne" — tavaliselt on see viimane kirje kuupäeva või versiooni järgi iga reklaami puhul.
Oletame, et on tabel ads koos veergudega: ad_id, address, price, updated_at.
Näide päringust, mis iga reklaami jaoks valib kirje maksimaalse uuendamise kuupäevaga:
SELECT ad_id, address, price
FROM ads a
WHERE updated_at = (
SELECT MAX(updated_at)
FROM ads
WHERE ad_id = a.ad_id
);
Kui andmebaas toetab aknafunktsioone, saab kasutada:
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;
See võimaldab saada iga reklaami kõige värskema aadressi ja hinna.