计划
- 通过匹配
- 计算平均得分加入用户分数平均分数和由用户ID
计算衍生差字段的总和设置
create table scores
(
UserID integer not null,
MatchId integer not null,
Score decimal(5, 2) not null,
primary key (UserID, MatchId)
);
insert into scores
(UserID, MatchId, Score)
values
(1, 1, 22.1),
(2, 1, 36.0),
(3, 1, 35.3),
(1, 2, 50.0),
(2, 2, 39.8),
(3, 2, 42.0)
;
查询
select s.UserID, sum(s.Score - avgs.avg_score) as paa
from scores s
inner join
(
select MatchId, avg(Score) as avg_score
from scores
group by MatchId
) avgs
on s.MatchId = avgs.MatchId
group by s.UserID
;
输出
+--------+-----------+
| UserID | paa |
+--------+-----------+
| 1 | -2.966666 |
| 2 | 0.733334 |
| 3 | 2.233334 |
+--------+-----------+
sqlfiddle
什么样的游戏包括浮点值?即使体操使得带有小数做 – Strawberry
你应该表现出你的第一次尝试也 –