以下代码返回一对数字,标识参与三个以上活动的人员。SQL - 从查询中作为单个数字获取答案
SELECT pnr
FROM Participates
GROUP BY pnr
HAVING count(activities)>3;
我希望答案是参加超过三个活动的人数,即“4”,而不是四个唯一的数字。该怎么办?
以下代码返回一对数字,标识参与三个以上活动的人员。SQL - 从查询中作为单个数字获取答案
SELECT pnr
FROM Participates
GROUP BY pnr
HAVING count(activities)>3;
我希望答案是参加超过三个活动的人数,即“4”,而不是四个唯一的数字。该怎么办?
Access支持派生表。
SELECT COUNT(*) AS NumberOfParticipants FROM
(
SELECT pnr
FROM Participates
GROUP BY pnr
HAVING count(activities)>3
) T
您需要在pnr
领域的WHERE子句来唯一地标识您的分组之一:
SELECT COUNT(pnr)
FROM Participates
GROUP BY pnr
WHERE pnr = 'whatever'
HAVING COUNT(activities)>3
我的条款的顺序可能是错误
Select Count(Distinct pnr)
From Participates
Having Count(activities) > 3
没有“GROUP BY”在这里让'计数(不同PNR)'也要算在整个表中不同的PNR和将返回,作为结果,如果发生的活动,在整个表的数量超过3. – 2010-08-22 15:46:27
真棒,正是我所期待的。谢谢 – Kremlan 2010-08-22 15:23:56