繁体   English   中英

从sqlite表中选择唯一记录

[英]Selecting unique records from sqlite table

我有一个名为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条记录。 例如,如果我有2条曲目,且同时具有artistName = 'Bruce Springsteen'trackName = 'Dancing In The Dark'albumName = 'Greatest Hits'但年份可能不同,则一个year = '1984'可能是year = '1984' ,而另一个可能是是year = '1985' ,我只想返回其中之一,而不是两者都返回。

有人可以帮我解决这个问题吗? 这让我疯狂?!

您可以使用已有的内容,但可以将聚合添加到查询中。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM