Sobes.tech
Middle

Πώς να εμφανίσετε τη τρέχουσα διεύθυνση και την τιμή για κάθε αγγελία σε SQL;

sobes.tech AI

Απάντηση από AI

Για να εμφανίσετε τη τρέχουσα διεύθυνση και τιμή για κάθε αγγελία σε SQL, πρέπει να ορίσετε τι σημαίνει "τρέχουσα" — συνήθως, η τελευταία εγγραφή κατά ημερομηνία ή έκδοση για κάθε αγγελία.

Ας υποθέσουμε ότι υπάρχει ένας πίνακας ads με στήλες: ad_id, address, price, updated_at.

Παράδειγμα ερωτήματος που, για κάθε αγγελία, επιλέγει την εγγραφή με τη μέγιστη ημερομηνία ενημέρωσης:

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

Εάν η βάση δεδομένων υποστηρίζει λειτουργίες παραθύρου, μπορείτε να χρησιμοποιήσετε:

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;

Αυτό θα επιτρέψει την λήψη της πιο πρόσφατης διεύθυνσης και τιμής για κάθε αγγελία.