Sobes.tech
Middle

Jak wyświetlić aktualny adres i cenę dla każdego ogłoszenia w SQL?

sobes.tech AI

Odpowiedź od AI

Aby wyświetlić aktualny adres i cenę dla każdego ogłoszenia w SQL, należy zdefiniować, co oznacza "aktualny" — zazwyczaj jest to najnowszy wpis według daty lub wersji dla każdego ogłoszenia.

Załóżmy, że istnieje tabela ads z kolumnami: ad_id, address, price, updated_at.

Przykład zapytania, które dla każdego ogłoszenia wybiera rekord z maksymalną datą aktualizacji:

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

Jeśli baza obsługuje funkcje okienkowe, można użyć:

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;

To pozwoli uzyskać dla każdego ogłoszenia najnowszy adres i cenę.