Middle
Πρέπει να γράψετε ένα ερώτημα που να επιστρέφει τους καλλιτέχνες και τα πιο πρώιμα άλμπουμ τους στη μορφή <Όνομα καλλιτέχνη> <Όνομα πρώτου άλμπουμ> <Ημερομηνία κυκλοφορίας πρώτου άλμπουμ>. create table Artists ( id serial primary key, name varchar(255) not null ); create table Albums ( id serial primary key, artistId int not null references Artists(id), name varchar(255) not null, release_date timestamp not null ); insert into Artists(name) values ('2Pac'), ('Wu-Tang Clan'), ('Eminem'); insert into Albums(name, artist_id, release_date) values ('The Slim Shady LP', 3, '[phone]'), ('Me Against The World', 1, '[phone]'), ('The Eminem Show', 3, '[phone]'), ('Enter The Wu-Tang Clan', 2, '[phone]'), ('Recovery', 3, '[phone]'), ('The W', 2, '[phone]'), ('2Pacalypse Now', 1, '[phone]'); select a.name, al.name, al.release_date from Artists as a join Albums as al on a.Id = al.artistId where al.release_date = ( select min(release_date) from Albums where artist_id = a.id ); with cte as ( select artist_id, min(release_date) as first_album_date from albums group by artist_id ) select a.Id, a.Name, fa.first_album_date from Artists a join cte as fa on a.Id = fa.artist_id;
sobes.tech AI
Απάντηση από AI
Για να λάβετε καλλιτέχνες με τα πιο πρώιμα άλμπουμ τους, μπορείτε να χρησιμοποιήσετε ένα ερώτημα με μια υποερώτηση που επιλέγει την ελάχιστη ημερομηνία κυκλοφορίας του άλμπουμ για κάθε καλλιτέχνη, και στη συνέχεια να το ενώσετε με τον πίνακα άλμπουμ για να λάβετε το όνομα του άλμπουμ.
Παράδειγμα ερώτησης:
select
a.name as artist_name,
al.name as first_album_name,
al.release_date as first_album_date
from Artists a
join Albums al on a.id = al.artistId
where al.release_date = (
select min(release_date)
from Albums
where artistId = a.id
)
order by a.name;
Εναλλακτικά, μπορείτε να χρησιμοποιήσετε CTE για να υπολογίσετε την ελάχιστη ημερομηνία και στη συνέχεια να το ενώσετε με τον πίνακα άλμπουμ:
with first_albums as (
select artistId, min(release_date) as first_album_date
from Albums
group by artistId
)
select
a.name as artist_name,
al.name as first_album_name,
al.release_date as first_album_date
from Artists a
join first_albums fa on a.id = fa.artistId
join Albums al on al.artistId = fa.artistId and al.release_date = fa.first_album_date
order by a.name;
Αυτή η ερώτηση θα επιστρέψει το όνομα του καλλιτέχνη, το όνομα του πρώτου άλμπουμ και την ημερομηνία κυκλοφορίας του πρώτου άλμπουμ.