2010-08-22 72 views
2

以下代码返回一对数字,标识参与三个以上活动的人员。SQL - 从查询中作为单个数字获取答案

SELECT pnr 
FROM Participates 
GROUP BY pnr 
HAVING count(activities)>3; 

我希望答案是参加超过三个活动的人数,即“4”,而不是四个唯一的数字。该怎么办?

回答

2

Access支持派生表。

SELECT COUNT(*) AS NumberOfParticipants FROM 
(
SELECT pnr 
    FROM Participates 
GROUP BY pnr 
HAVING count(activities)>3 
) T 
+0

真棒,正是我所期待的。谢谢 – Kremlan 2010-08-22 15:23:56

-1

您需要在pnr领域的WHERE子句来唯一地标识您的分组之一:

SELECT COUNT(pnr) 
FROM Participates 
GROUP BY pnr 
WHERE pnr = 'whatever' 
HAVING COUNT(activities)>3 

我的条款的顺序可能是错误

-1
Select Count(Distinct pnr) 
From Participates 
Having Count(activities) > 3 
+0

没有“GROUP BY”在这里让'计数(不同PNR)'也要算在整个表中不同的PNR和将返回,作为结果,如果发生的活动,在整个表的数量超过3. – 2010-08-22 15:46:27