构建一个计算相似条目的数据库

时间:2013-03-11 20:22:47

标签: mysql database sqlite

我是数据库的新手。我正在使用mysqlite3组织音乐。我在ArtistName表中有SongTitleAlbumTitleMusic个字段。数据库的主要目的是查询它并返回少于3首歌曲的所有艺术家。

为了实现这一点,我想我需要某种“歌曲计数”条目,每次我从同一位艺术家添加一首歌时都会增加。但是,我不确定如何创建动态条目。我知道AUTO_INCREMENT关键字,它具有我正在寻找的动态属性,但不是条件递增。

思考?

2 个答案:

答案 0 :(得分:1)

除非我在您的请求中遗漏了某些内容,否则您不需要songCount列,您可以轻松获取少于3首歌曲的艺术家,但使用以下查询:

select artistname
from music
group by artistname
having count(SongTitle) <3

对于每首歌曲数量少于三首歌曲的艺术家,这将返回artistname

然后,如果你想对此进行扩展,你可以使用以下内容返回music表中艺术家少于3首歌曲的所有列:

select m1.*
from music m1
where exists (select artistname
              from music m2
              where m1.artistname = m2.artistname
              group by artistname
              having count(SongTitle) <3)

答案 1 :(得分:1)

您不需要“计数”字段。试试这个......

SELECT ArtistName
FROM Music
GROUP BY ArtistName
HAVING Count(ArtistName) < 3

这假设每首歌只有一个条目。