SSMS 2008을 사용하고 있으며 하위 레코드를 사용하여 고유 레코드/클라이언트 수를 반환해야합니다. 어떻게해야합니까? 현재 클라이언트마다가 아니라 전체 데이터 세트 전체에서 모든 고유 레코드를 반환합니다. 현재 내 의사 코드는 다음과 같습니다.tsql distinct count 하위 쿼리
SELECT A.Program, A.PEOPLE_ID, K.EVENT_NAME, A.Program2, A.Program3
(SELECT COUNT(DISTINCT K.EVENT_NAME)
FROM #TEMP1 A, evolv_cs.dbo.facility_view F, evolv_cs.dbo.people_x N, event_view K WITH (NOLOCK)
WHERE F.group_profile_id = A.group_profile_id AND
K.event_definition_id = a.event_definition_id AND
A.people_id = N.people_id
GROUP BY K.EVENT_NAME) as DistinctEvent
FROM #TEMP1 A
JOIN event_view K WITH (NOLOCK) on K.event_definition_id = A.event_definition_id
WHERE @START_DATE BETWEEN A.Enrolled_Date AND DATEADD(D, 14, A.Enrolled_Date)
AND (@SERVICE IS NULL OR @SERVICE = K.event_name)
GROUP BY
A.Program, A.PEOPLE_ID, K.EVENT_NAME, A.Program2, A.Program3
좋아, 지금 위 쿼리를 편집했습니다. 나는 여전히 클라이언트 당 event_name을 원한다.
이 쿼리에서 A.Program, A.PEOPLE_ID, A.Program2 및 A.Program3의 각 고유 한 조합에 해당하는 고유 EVENT_NAME 값의 개수를 출력하겠습니까? –