我的要求如下: - 所有录音艺术家的名字 - 每个艺术家唱的摇滚歌曲数量 -list已订购,以便首先出现摇滚歌曲数量最少的艺术家
*请注意,有些艺术家可能不会唱任何摇滚歌曲,但仍应包含在列表中。
这应该在获得这些结果的单个查询中完成。
确保从结果集中删除不需要的列,并将列命名为用户友好且易读的。
这是我到目前为止所做的:
{{1}}
其中显示了2位拥有摇滚歌曲的艺术家名字,显示摇滚类型的专栏以及每位艺术家演唱的摇滚歌曲的数量。
我无法弄清楚如何将那些没有摇滚歌曲的人展示为拥有0首摇滚歌曲。
如果我删除了WHERE命令,它会在每种歌曲类型中显示所有歌曲及其数量,但仍无法设置除摇滚到0之外的任何内容。这就是我需要帮助理解的内容。
编辑:我使用的是Microsoft SQL Server。
编辑:这是我需要的红色编辑输出。我需要歌曲的总数来表示摇滚歌曲的数量,如果歌手没有唱摇滚歌曲,我仍然需要列出它们,并且它们的歌曲价值为0或NULL。
答案 0 :(得分:0)
你可以试试这个。
SELECT recording_artist.artist_name AS "Artist Name", Musical_genre.musical_genre AS "Genre",
COUNT(Song.song_id) AS "Number of Songs"
FROM Album
JOIN recording_artist
ON recording_artist.recording_artist_id = album.recording_artist_id
LEFT JOIN musical_genre
ON musical_genre.musical_genre_id = album.musical_genre_id
AND Musical_genre.musical_genre = 'Rock
LEFT JOIN Song
ON Album.album_id = Song.album_id
GROUP BY recording_artist.artist_name, Musical_genre.musical_genre
ORDER BY "Number of Songs" ASC