0

質問IDとユーザーが送信した値を含む質問票の回答の表があります。

回答数と質問ID全体の平均を取得したいので、たとえば質問ID 1の場合、オプション1の数は3、オプション2の数は2でしたが、全体の平均7(すべてのオプトンの合計)を5(合計提出数)で割ったものになります。

質問IDとオプション番号でグループ化された合計の応答を行うgroupbyでこれを行う方法がわかりません。

どんなポインタでもありがたいことに受け取られるでしょう!

サンプルデータは次のようになります

questionID  ResponseValue
1           5
1           5
1           6
2           7
2           7
2           7
2           3

私の期待する出力は

questionID responseValue countOfResponses questionAverage
1          5             2                5.3333
1          6             1                5.3333
2          3             1                6
2          7             3                6
4

1 に答える 1

1

次のようなものをお探しですか...全体の合計を含むオプションごとに、質問ごとの合計(回答の値)を事前にクエリし、質問だけをグループ化して、すべてのエントリに対してそれを取得します...もう一度クエリしますが、質問/オプションごとに...したがって、この場合、「平均」ではなく、特定の応答が表す合計のパーセンテージを取得しています...小数の精度を確実に取得するために、 * 1.0000が追加されたため、整数だけでなく、10進数の強制結果列に移動します。

select
      YT.QuestionID,
      YT.responseValue,
      count(*) as TotalOptResponses,
      TotalByQ.TotalQAverage
   from
      YourTable  YT
         JOIN ( select QuestionID,
                       avg(ResponseValue * 1.0000 ) as TotalQAverage
                   from
                      YourTable
                   group by
                      QuestionID ) TotalByQ
            ON YT.QuestionID = TotalByQ.QuestionID
   group by
      YT.QuestionID,
      YT.ResponseValue
于 2012-10-01T11:10:38.293 に答える