对于模糊的问题感到抱歉,但我只能通过举例说明我需要解决方案的问题来解释我的问题。 在篮球方面,我的朋友和我一次拍摄20张照片并记录有多少人进去 - 我想建立一个数据库来存储每个玩家的每一组n / 20以获得平均值。 MySQL听起来不是最好的解决方案,因为它无法存储简单的数组。 也许我可以将这些数据存储为2D数组?例如
stats = [
[ ["me" , 12 , 14 , 8 , 19 , 13 , 10...] ],
[ ["friend1" , 11 , 9 , 14 , 15 , 16 , 18...] ],
[ ["friend2" , 17 , 9 , 18 , 14 , 17 , 17...] ]
]
我想保留每组20,而不是一个总运行百分比 - 我应该怎么做呢?感谢。
答案 0 :(得分:1)
我会把它存储在不同的表中,所以你得到了:
Games - GameID, Date, NumberOfShots (so you're not fixed to 20), Etc
Players - PlayerID, Name, etc
Turns - TurnID, GameID, PlayerID, Score
通过这些,您可以轻松聚合每位玩家,就像这样。
在过去30天内获得每位玩家的平均百分比。
select
p.PlayerID,
p.Name
AVG(p.Score / g.NumberOfShots) * 100 as Percentage
from
Games g
inner join Players p on p.GameID = g.GameID
inner join Turns t on t.GameID = g.GameID and t.PlayerID = p.PlayerID
where
g.Date > (sysdate() - 30)
group by
p.PlayerID,
p.Name