问:返回每位艺术家专辑的平均曲目数。鉴于:
艺术家(身份证、姓名)
相册(id,标题)
艺术家专辑(艺术家id,专辑id)
曲目(曲目标题、专辑id、数字)
我想要一个表格,显示艺术家的名字和他们专辑中的平均曲目数,这意味着一个艺术家可以有多张专辑,每张专辑中有多首歌曲,我们需要所有专辑中的平均曲目数。
SELECT artist.name, COUNT(track_title) as averageTracks
FROM artist
JOIN track
ON track.album_id = artist_album.album_id
JOIN artist_album
ON artist_album.artist_id = artist.id
GROUP BY artist.name
HAVING AVG(averageTracks);
不给我平均曲目数,比如鲍勃·马利可能有4张不同专辑的13首歌,它应该给我3.25首,但在这种情况下,它给了我13首。所以我不确定avg()方法去了哪里。
1条答案
按热度按时间z5btuh9x1#
你实际上比你想象的要近。平均曲目数是曲目总数除以专辑数。您可以将其作为:
当然,您的查询将不起作用,因为联接条件与表定义的顺序不一致。
你的
HAVING AVG(averageTracks)
过滤结果。它不会改变SELECT
.