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;
Αυτό θα επιτρέψει την λήψη της πιο πρόσφατης διεύθυνσης και τιμής για κάθε αγγελία.