2017-10-04 99 views
-1

以下查询返回100个结果,每个结果具有各种计数。我如何修改我的查询,只返回单个行,总计结果数为100?SQLite3 - 修改查询以输出单行总计结果

SELECT COUNT(*) 
FROM Album Al, Track T 
WHERE Al.AlbumId = T.AlbumId 
GROUP BY T.AlbumId 
HAVING COUNT(T.TrackId) > 10; 

回答

0

这可能会迟一点,但下面的代码是正确的解决方案。它会计算拥有超过10首曲目(100个结果)的专辑总数,而不是专辑中的每首曲目。

SELECT COUNT(*) 
FROM Album A 
WHERE (SELECT COUNT(T.AlbumId) AS TrackCount 
FROM Track T 
WHERE A.AlbumId = T.AlbumId) > 10; 
1
SELECT COUNT(SELECT * FROM Album Al, Track T 
WHERE Al.AlbumId = T.AlbumId 
GROUP BY T.AlbumId 
HAVING COUNT(T.TrackId) > 10); 

或者

SELECT COUNT(Album.AlbumId) 
FROM Album Al, Track T 
WHERE Al.AlbumId = T.AlbumId 
GROUP BY T.AlbumId 
HAVING COUNT(T.TrackId) > 10; 

不知道,而无需数据与测试,但我第一个想到的是你在找什么。