설문 조사 데이터로 작업하고 있습니다. 본질적으로, 나는 한 위치에 대한 질문에 대한 총 응답을 계산하고, 그 총계를 사용하여 각각의 특정 응답이 모든 응답의 몇 퍼센트를 만드는지 알고 싶다. 그런 다음 위치별로 결과를 그룹화합니다.MySQL에서 GROUP BY 결과의 백분율 값을 확인하십시오.
이상적인 출력이 유사 할 것입니다 :
Q1 | 주 | 시 | %
예 | 석사 | 보스 | 10
no | 석사 | 보스 | 40
m. | 석사 | 보스 | 50
예 | 석사 | 캠 | 20
no | 석사 | 캠 | 20
m. | 석사 | 캠 | 80
나는 (내가 믿는)로 실행하는 문제는 내 count
문 앞에 GROUP BY
작품, 그래서 모든 응답을 계산하지 수 있다는 것입니다. 모든 질문에, 그래서 아래의 비율을 얻을 내 시도 응답 가지고 있지
SELECT q1, state, city, COUNT(q1) FROM master GROUP BY state, city, q1
: 나는 WITH
또는 OVER(PARTITION BY...)
을
SELECT q1, state, city, count(q1)/(count(nullif(q1,0))) as percent FROM master group by state, city, q1
을 것이다 사용하여 믿고 아래는 내가 실수를 생산하는 무슨의 예입니다 가능한 길일 수는 있지만, 나는 일할 수 없다.
감사합니다. Jeff. 카운트 (q1)로 그룹화하면, 질문 당 총 응답을 얻는 데 도움이 될 것이라고 생각하지 않습니다. 그런 다음 카운트 (q1)와 비교하여 사용하십시오. count (q1) 대신 count (q1)/total_responses_per_this_location 또는 이와 비슷한 것을 원합니다. 또는 나는 물건을 복잡하게하고 있냐? –
그것은 Trevor가 대답 한 것과는 다른 선택 기준에 따라 두 개의 개별 집계가 될 것입니다. –