Sobes.tech
Middle

Comment afficher l'adresse actuelle et le prix pour chaque annonce en SQL?

sobes.tech IA

Réponse de l'IA

Pour afficher l'adresse et le prix actuels de chaque annonce en SQL, il faut définir ce que signifie "actuel" — généralement, la dernière entrée par date ou par version pour chaque annonce.

Supposons qu'il y ait une table ads avec les colonnes : ad_id, address, price, updated_at.

Exemple de requête qui, pour chaque annonce, sélectionne l'enregistrement avec la date de mise à jour maximale :

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

Si la base supporte les fonctions de fenêtre, on peut utiliser :

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;

Cela permettra d'obtenir pour chaque annonce l'adresse et le prix les plus récents.