Sobes.tech
Middle

Cum se afișează adresa actuală și prețul pentru fiecare anunț în SQL?

sobes.tech AI

Răspuns de la AI

Pentru a afișa adresa și prețul actual pentru fiecare anunț în SQL, trebuie să definim ce înseamnă "actual" — de obicei, cea mai recentă înregistrare după dată sau versiune pentru fiecare anunț.

Presupunem că există un tabel ads cu coloanele: ad_id, address, price, updated_at.

Exemplu de interogare care, pentru fiecare anunț, selectează înregistrarea cu cea mai mare dată de actualizare:

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

Dacă baza de date suportă funcții de tip window, se poate folosi:

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;

Aceasta va permite obținerea pentru fiecare anunț a celei mai recente adrese și preț.