2017-09-14 39 views
0

我试图在我的数据库中找到当前艺术家的数目。SQL中的减法 - 无法对包含聚合或子查询的表达式执行聚合函数

我想到了一个好办法做到这一点是找到艺术家的数量,发现艺术家的数量与“结束日期”,然后减去从总的非流动的。

代码:

SELECT COUNT(Name) AS NumberOfArtists, 
COUNT(YearEnded) AS NumberEnded, 
COUNT(COUNT(Name) - COUNT(YearEnded)) AS NumberOfCurrentArtists 
FROM Artists; 

我得到的错误:

Cannot perform an aggregate function on an expression containing an aggregate or a subquery.

我看了上同样的错误堆栈溢出其他许多问题,但它似乎是一个非常广泛的错误,我找不到我做错了什么。

回答

3
SELECT COUNT(Name) AS NumberOfArtists 
     , COUNT(YearEnded) AS NumberEnded 
     , COUNT(Name) - COUNT(YearEnded) AS NumberOfCurrentArtists 
FROM Artists; 

你不需要做差数计数,它只是没有任何意义。

+0

工作,谢谢! –

相关问题