我尝试通过每个桌面的最大时间戳金额的权重来计算每个玩家金额的加权平均值
例如下表:
table|播放器|数量|重量|时间戳
- ---一---| - ---一---| - -------2-----| -----10-------| 13点整
- ---一---| - ---一---| - -------1-----| -----15-------| 14点整
- ---二---| - ---一---| - -------5------| -----20-------| 13点整
- ---二---| - ---一---| - -------3------| -----5-------| 15点整
- -三---| - ---二---| - -------5------| -----6-------| 13点整
- -三---| - ---二---| - -------2-----| -----30-------| 14点整
- -四---| - ---二---| - -------1-----| -----10-------| 15点整
- -四---| - ---二---| - -------六------| -----3-------| 13点整
结果应该是:
- 玩家|加权金额**
---1---| 1.5((15/20)* 1+(5/20)* 3)
---2---| 1.75((30/40)* 2+(10/40)* 1)
我尝试了下面的查询,但我认为我在某处丢失了一些时间戳= max(timestamp):
select player,SUM(lates_data.amount * (lates_data.weight/ lates_data.sumWeight)) from
(SELECT * FROM
(select player as plr, SUM(weight) as sumWeight from playersDb.player_stats group by plr) t1
INNER JOIN
(select desk,player,amount,weight from playersDb.player_stats group by desk,player) t2
ON t1.plr= t2.player) lates_data
group by player
你知道吗?
拉兹
2条答案
按热度按时间3bygqnnd1#
下面是一些代码,它们应该可以生成您所需的结果。
此致,
詹姆斯
vsmadaxz2#
谢谢!
我设法用这个查询做到了这一点:
拉兹