2013-07-12 6 views
0

아래 쿼리에서 county로 그룹화하고 county로 정렬하려고하는데 작동하지 않습니다. 카운티별로 그룹화하고 주문하려면 어떻게해야합니까?county sql 쿼리 별 그룹

select COUNT(sr.Response) as 'Number Of Responses', 
    County = 
    (select qpa.PossibleAnswerText from CaresPlusParticipantSurvey.QuestionPossibleAnswer as qpa 
    join CaresPlusParticipantSurvey.SurveyResponse as sr1 on qpa.Id = sr1.QuestionPossibleAnswerId 
    where (sr1.QuestionId = 1 and sr.SurveyId = sr1.SurveyId)) 

    FROM CaresPlusParticipantSurvey.SurveyResponse as sr 
    where (sr.Response is not null and CAST(sr.Response as int) < 6) and (sr.QuestionId = 8) 
    Group BY sr.Response, sr.SurveyId 
    Order by County 

결과는 아래의 현재 쿼리와 현재의 결과입니다. 나는 카운티 그룹에 원하는 그래서 4 알라 메다 1 콜 루사 8 콘트라 코스타

1 Alameda 
    1 Alameda 
    1 Alameda 
    1 Alameda 
    1 Colusa 
    1 Contra Costa 
    1 Contra Costa 
    1 Contra Costa 
    1 Contra Costa 
    1 Contra Costa 
    1 Contra Costa 
    1 Contra Costa 
    1 Contra Costa 

답변

0

나는이 오류가 발생했습니다
SELECT a.County, COUNT(*) 'Number of Responses' 
FROM 
(
SELECT 
    sr.Response, 
    County = 
    (
     SELECT 
      qpa.PossibleAnswerText 
     FROM CaresPlusParticipantSurvey.QuestionPossibleAnswer AS qpa 
     JOIN CaresPlusParticipantSurvey.SurveyResponse AS sr1 ON qpa.Id = sr1.QuestionPossibleAnswerId 
     WHERE (sr1.QuestionId = 1 AND sr.SurveyId = sr1.SurveyId) 
    ) 

FROM CaresPlusParticipantSurvey.SurveyResponse AS sr 
WHERE (sr.Response IS NOT NULL 
AND CAST(sr.Response AS INT) < 6) 
AND (sr.QuestionId = 8) 
) a 
GROUP BY a.County 
+0

매우 좋았습니다. 고마워, 나는 이것을 잠시 동안 얻으려고 노력해왔다. – user1202606

+0

<6, 6 ~ 10, 11 ~ 15 같은 다양한 범위를 어떻게 얻을 수 있습니까? – user1202606

1

당신은 카운티에 의해 '응답의 수 "와 그룹을 요약 할 수 있어야한다 : select sum(COUNT(sr.Response) as 'Number Of Responses')Group BY sr.Response, sr.SurveyId Order by County

+0

:가 포함 된 식에서는 집계 함수를 수행 할 수 없습니다 당신이 필요하지만, 샘플 데이터없이 내가 확신 할 수없는 무엇을 제공해야 집계 또는 하위 쿼리. – user1202606