0

テーブルがあり、その構造は次のとおりです。

VoteId  QuestionId  AnswerId    EmployeeId

6        1              5              2
7        1              1              1
10       2              6              1
12       1              1             24

ここでは、QuestionId 1 に対して 2 つの回答があります。AnswerId 1 と 5。Answer 1 については、EmployeeId 1 と 24 の 2 人の従業員が投票しました。また、AnswerId 5 については、EmployeeId 2 が投票しました。

この表から、に従って AnswerId個々のパーセンテージを計算する必要があります。QuestionIdEmployeeId

どうすればこれを解決できますか?

4

1 に答える 1

1

これはあなたが求めていたものですか?

DECLARE @t TABLE (VoteId  INT,QuestionId  INT,AnswerId    INT,EmployeeId INT)
INSERT @t VALUES 
(6,   1,    5,   2),
(7,   1,    1,    1),
(10,  2,    6,    1),
(12,  1,    1,   24)

SELECT  QuestionId, 
        COUNT(*) * 100.0 / (SELECT COUNT(*) FROM @t)
        AS PercentageOfVotesReceived
FROM    @t
GROUP   BY QuestionId

SELECT  AnswerId, 
        COUNT(*) * 100.0 / (SELECT COUNT(*) FROM @t)
        AS PercentageOfVotesReceived
FROM    @t
GROUP   BY AnswerId 

SELECT  EmployeeId, 
        COUNT(*) * 100.0 / (SELECT COUNT(*) FROM @t)
        AS PercentageOfVotesReceived
FROM    @t
GROUP   BY EmployeeId
于 2012-07-03T12:32:21.187 に答える