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 АИ
Одговор од АИ
Да бисте добили уметнике са њиховим најранијим албумима, можете користити упит са подупитом који бира минимални датум издавања албума за сваког уметника, а затим га спојити са табелом албума да бисте добили назив албума.
Пример упита:
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;
Овај упит ће вратити име уметника, назив његовог првог албума и датум издавања тог албума.