我有一个名为Tracks的sqlite表,其中包含有关我音乐库中存储的大量曲目的信息。表格中的列如下:artistName
,trackName
,trackPath
,imagePath
,year
,albumName
,bpm
,genre1
,genre2
,genre3
。
我使用一个简单的select语句来返回表格中的所有独特曲目,例如,为了获得Rock类型中的所有曲目我使用以下内容:
SELECT DISTINCT artistName, trackName, trackPath, imagePath, year, albumName, bpm, genre1, genre2, genre3
FROM Tracks
WHERE genre1='Rock' or genre2='Rock' or genre3='Rock'
我遇到的问题是我不想为一个可能具有不同年份值但同一个artistName,trackName,albumName的曲目返回2条记录。例如,如果我有artistName = 'Bruce Springsteen'
和trackName = 'Dancing In The Dark'
以及albumName = 'Greatest Hits'
的两个曲目但年份可能不同,则可能是year = '1984'
而另一个可能是{{1}我只想返回其中一个,而不是两个。
任何人都可以帮我解决这个问题吗?这让我发疯了?!
答案 0 :(得分:2)
您可以使用自己拥有的内容,但可以在查询中添加聚合。
SELECT DISTINCT artistName, trackName, trackPath, imagePath, MAX(year), albumName, bpm, genre1, genre2, genre3
FROM Tracks
where genre1='Rock' or genre2='Rock' or genre3='Rock'
group by artistName, trackName, trackPath, imagePath, albumName, bpm, genre1, genre2, genre3
结果将是一个记录,但年份将是最近一年。