我有一张表,例如
Artist Title Song Key
A Title A A
A Title A B
A Title A F
B Title B A
我想返回每首歌曲,但也会显示该歌曲的版本数量,例如理想的结果将是:
Artist Title How_many
A Title A 3
B Title B 1
这就是我正在尝试的但是计数会计算所有曲目,而不仅仅是当前行:
SELECT *,
( select count(*)
from tracks
where artist=artist
AND title=title ) as How_many
from tracks
where easytosing='Yes'
group by title, artist
order by track_id desc
这可能是使用嵌套查询还是有更好的方法?
答案 0 :(得分:1)
试试这个:
SELECT Artist, title, count(*) as How_many
FROM tracks
WHERE easytosing='Yes'
GROUP BY Artist,Title
答案 1 :(得分:1)
SELECT t.*, how_many
from tracks t
inner join
( select title,artist, count(*) ,how_many
from tracks
group by artist,title ) as temp
temp.title=t.title and temp.artist=t.artist
where easytosing='Yes'
答案 2 :(得分:0)
SELECT Artist,Title, COUNT(*) FROM TABLE1 GROUP BY Artist,Title
<强> SAMPLE FIDDLE 强>
答案 3 :(得分:0)
只需简单地您可以使用group by
执行以下查询 select Artist,Title,count(Song_Key) as How_many
from Tracks
group by Artist,Title
执行上述查询后,您将获得所需的结果。
ARTIST TITLE HOW_MANY
A Title A 3
B Title B 1
在0.00秒内返回2行
答案 4 :(得分:-1)
在特定情况下:
SELECT title, artist, count(*)
from tracks
where easytosing='Yes'
group by title, artist
因为你得到每个艺术家/标题的歌曲数量。
在这种情况下,您不需要子查询。
你可以执行的另一个查询是一个查询,其中主选择基于磁盘表(我认为你有一个磁盘表,你有一个艺术家的外键和磁盘的名称),你得到一些包含每个艺术家/磁盘的歌曲。
这样,如果一个磁盘没有歌曲,你就会得到零值。