gpt4 book ai didi

sql - 如何对来自不同列的值进行分组sql

转载 作者:行者123 更新时间:2023-12-04 16:17:04 25 4
gpt4 key购买 nike

好的,我得到了 2 个重要的表,它们是 TRACK 和 ALBUM。 enter image description here

(Playlisttrack 不重要)。我想要做的是列出所有编辑了另一位艺术家的整张专辑的 Composer ,即编辑了同一张专辑中所有轨道的 Composer 。

例如: enter image description here

在此示例中, Composer “a”编辑了专辑 1 中的所有歌曲 x1-x5。歌曲 y1-y5 有 Composer “d”和“t”,所以这不是我想要显示的。从我的样本中我想得到这样的东西

enter image description here

更好地解释一下:我想显示编辑一张专辑所有歌曲的所有 Composer 。也就是说,我必须从一张专辑中获取所有歌曲并比较它们是否都具有相同的 Composer ,我不知道该怎么做。

到目前为止,我已经达到了显示所有艺术家、专辑、轨道和 Composer 的地步。我没有进一步

select tr.COMPOSER,tr.NAME,alb.title,art.name as Artist
from TRACK tr
join album alb
on tr.ALBUMID = alb.albumid
join artist art
on artistid = alb.artistid
order by alb.title ASC;

最佳答案

我认为这可以满足您的需求。我使用派生表来找出哪些 albumids 只有一个 Composer ,并将其加入到您的查询中。

select tr.COMPOSER,tr.NAME,alb.title,art.name as Artist
from TRACK tr
JOIN (SELECT AlbumID, COUNT(1) as Num_Tracks FROM Track GROUP BY AlbumID HAVING COUNT(DISTINCT Composer) = 1) tr2
ON tr.albumid = tr2.albumid
join album alb
on tr.ALBUMID = alb.albumid
join artist art
on artistid = alb.artistid
WHERE num_tracks > 1
order by alb.title ASC;

关于sql - 如何对来自不同列的值进行分组sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41001290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com