私はこれを理解したと思ったが、それは私を逃れている. さまざまなテーマ パークのユーザー調査を収集する Web アプリをバックエンドに持つ MySQL データベースがあります。一連の 30 の質問があります。いくつかはラジオボタン スタイルの複数選択式で、いくつかはチェックボックス スタイルです。応答はすべて、次のようなリレーショナル テーブルに格納されます。
"id"|"q_id"| "a_id"|"u_id" |"p_id"|
"1"| "1"| "1"|"8f699ecbd9f130df14c1e4e0a6383516"|"106397"|
"2"| "1"| "2"|"8f699ecbd9f130df14c1e4e0a6383516"|"106397"|
"3"| "2"| "1"|"8f699ecbd9f130df14c1e4e0a6383516"|"106397"|
"4"| "3"| "1"|"8f699ecbd9f130df14c1e4e0a6383516"|"106397"|
"7"| "3"| "3"|"8f699ecbd9f130df14c1e4e0a6383516"|"106397"|
"8"| "3"| "4"|"8f699ecbd9f130df14c1e4e0a6383516"|"106397"|
"9"| "1"| "2"|"348895be7b4affac001c9ba096d8c1d3"|"106397"|
"10"| "1"| "3"|"348895be7b4affac001c9ba096d8c1d3"|"106397"|
"11"| "3"| "2"|"348895be7b4affac001c9ba096d8c1d3"|"106397"|
"13"| "3"| "3"|"348895be7b4affac001c9ba096d8c1d3"|"106397"|
"1"| "1"| "3"|"8f699ecbd9f130df14c1e4e0a6383516"|"380486"|
"3"| "2"| "2"|"8f699ecbd9f130df14c1e4e0a6383516"|"380486"|
"4"| "3"| "2"|"8f699ecbd9f130df14c1e4e0a6383516"|"380486"|
"7"| "3"| "4"|"8f699ecbd9f130df14c1e4e0a6383516"|"380486"|
"8"| "3"| "4"|"8f699ecbd9f130df14c1e4e0a6383516"|"380486"|
"11"| "3"| "2"|"348895be7b4affac001c9ba096d8c1d3"|"380486"|
"13"| "3"| "3"|"348895be7b4affac001c9ba096d8c1d3"|"380486"|
q_id は回答された質問です a_id は選択されたオプションです u_id はオプションを選択したユーザーです p_id は質問に回答した遊園地です
したがって、このテーブルには、チェックボックス スタイルの質問の場合、u_id、q_id、および p_id が同じである複数のレコードが含まれる場合がありますが、u_id、q_id、p_id、および a_id が同じであるレコードは決して含まれません。
ここで行う必要があるのは、特定の遊園地で特定の各質問に回答された合計回数をカウントするクエリを作成することです。この場合、必要なのは次のとおりです。
"p_id"|"count"
"106397"|"5"
"380486"|"4"
...つまり、各 p_id と、q_id と u_id の両方の一意のインスタンスの数が必要です。私はこれがうまくいくと思った:
SELECT distinct p_id, count(concat(q_id,u_id)) from responses group by p_id
しかし、それでも q_id と u_id の値が同じで a_id の値が異なる 2 つのレコードを 2 回カウントしているようで、次のようになります。
"p_id"|"count"
"106397"|"10"
"380486"| "7"
この集計関数を機能させるには、このクエリに対して何ができますか?