我可能遗漏了一些东西,但我没有看到你的歌曲表与专辑的直接关系......
我首先将 link_interpret_song 表加入到歌曲表中,然后计算不同专辑的数量。但是,我没有在歌曲表的字段列表中看到“No_Album”列。我只能猜测它与特定专辑相关联。我确实看到了媒体,但对我来说,这就像一种媒体类型(数字、下载、乙烯基、CD)与专辑表中明显的实际 ID 密钥。
也就是说,我认为 SONG 表中有这样一个“No_Album”列。
select
LIS.No_Interpret,
COUNT( DISTINCT S.No_Album )
from
Link_Interpret_Song LIS
JOIN Song S
on LIS.No_Song = S.No_Song
group by
LIS.No_Interpret;
现在,也就是说,如果您想要解释详细信息,请获取上述结果并将其加入解释表。我已经完成了不同的专辑计数和歌曲总数,作为 count() 与 count(distinct) 上下文的示例......例如
select
PreCounts.No_Interpret,
PreCounts.DistinctAlbums,
PreCounts.ActualSongs,
I.Name_Interpret,
I.First_Name,
I.Stage_Name
from
( select
LIS.No_Interpret,
COUNT( DISTINCT S.No_Album ) as DistinctAlbums,
COUNT(*) as ActualSongs
from
Link_Interpret_Song LIS
JOIN Song S
on LIS.No_Song = S.No_Song
group by
LIS.No_Interpret ) as PreCounts
JOIN Interpret I
ON PreCounts.No_Interpret = I.No_Interpret