2010-08-22 2 views
2

다음 코드는 세 가지 이상의 활동에 참여하는 사람들을 식별하는 두어 개의 숫자를 반환합니다.SQL - 단일 숫자로 쿼리에서 답을 얻으십시오

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

나는 대답은하지만 세 개 이상의 활동에 참여하는 사람의 수, 즉 "4", 4 개 대신 고유 번호가되고 싶어요. 무엇을해야합니까?

답변

2

잘못 될 수도

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

.

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

엄청나게 내가 찾고있는 것. 고맙습니다 – Kremlan

-1

당신은 고유 그룹 중 하나를 식별 할 pnr 필드에 WHERE 절을해야합니다 : 내 조항의 순서는 액세스가 파생 테이블을 지원

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

에는 '그룹에 의해'여기가 없습니다 그래서'카운트 (고유 PNR)는'전체 테이블의 고유 한 PNR을 계산 것이며, 전체 테이블에서 활동의 숫자가 일어난 경우 결과로 그 반환 3보다 많아야합니다. –

관련 문제