SQL - 如何在不显示计数的情况下返回最大计数结果

时间:2017-11-05 19:30:46

标签: sql sql-server

完成我的家庭作业并且非常困难时间试图找出只有艺术家姓名的人才会出现最多的曲目。

当我正确得到答案时,它会继续显示艺术家姓名和曲目数量。只需要艺术家的名字。试图使用WHERE,HAVING。似乎没什么用。有什么想法吗?

SELECT TOP 1
    Artist.Name 'ArtistName',
    COUNT(*)  TrackName
FROM Artist
JOIN Album ON
    Artist.ArtistId = Album.AlbumId
JOIN Track ON
    Album.AlbumId = Track.AlbumId
GROUP BY Artist.Name
ORDER BY TrackName DESC

1 个答案:

答案 0 :(得分:4)

只需在count(*)中使用order by

SELECT TOP 1 a.Name as ArtistName
FROM Artist a JOIN
     Album al
     ON a.ArtistId = al.AlbumId join
     Track t
     ON al.AlbumId = t.AlbumId
GROUP BY a.Name
ORDER BY COUNT(*) DESC;

请注意查询的其他更改:

  • as用于列别名。
  • 删除列别名周围的单引号。仅对字符串和日期常量使用单引号。
  • 表别名的介绍。这使查询更容易编写和阅读。