从sqlite表中选择唯一记录

时间:2014-05-14 20:33:22

标签: sqlite unique distinct sql

我有一个名为Tracks的sqlite表,其中包含有关我音乐库中存储的大量曲目的信息。表格中的列如下:artistNametrackNametrackPathimagePathyearalbumNamebpmgenre1genre2genre3

我使用一个简单的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}我只想返回其中一个,而不是两个。

任何人都可以帮我解决这个问题吗?这让我发疯了?!

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

结果将是一个记录,但年份将是最近一年。