2010-08-22 34 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