Sobes.tech
Middle

Hogyan jeleníthetjük meg az aktuális címet és árat minden hirdetéshez SQL-ben?

sobes.tech MI

Válasz az MI-től

Az aktuális cím és ár megjelenítéséhez SQL-ben meg kell határozni, hogy mit jelent az, hogy "aktuális" — általában az utolsó rekord dátum vagy verzió szerint minden hirdetés esetében.

Tegyük fel, hogy van egy ads nevű tábla, amelyben a következő oszlopok vannak: ad_id, address, price, updated_at.

Példa lekérdezés, amely minden hirdetéshez kiválasztja a legfrissebb frissítési dátummal rendelkező rekordot:

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

Ha az adatbázis támogatja az ablakfüggvényeket, akkor használhatja:

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;

Ez lehetővé teszi, hogy minden hirdetéshez a legfrissebb címet és árat kapja meg.