我有一个包含三列的表:播放器,得分和日期。
我想创建一个查询,将每位玩家的总得分与一周前的总得分进行比较。
例如,我希望能够收集信息,以便我能够输出:
1st place this week: **Bob** (**1875** Score) - up by **7** points since last week!
由于
编辑:根据要求添加更多信息。
目前,我有几个查询显示总分,平均分等数据
当我在网站上输入这些数据时,我会手动计算差异的大小。例如:
Player Champion Role Games Ratio Sum Of Kills Sum Of Deaths Startmanningup Ezreal Adc 8 4.20 63 15 Voyboy Tristana Adc 4 3.33 30 9
如果上周的Startmannings比率为4.18,我想要一列显示差异为0.02。
我的表格信息如下:
Player Champion Role Kills Deaths Assists Win Time lord zosh master yi jungle 11 2 6 1 2014-06-27 lolbree lucian adc 7 0 7 1 2014-06-27
编辑2:
好的我可以得到一个查询,显示我要比较的数字..但我不知道如何使用实际显示分数差异的列进行查询(在Access中我一直收到聚合查询错误)。
答案 0 :(得分:2)
对于名为[Scores]
的表中的测试数据Date Player Score
---------- ------ -----
2014-06-23 Gord 30
2014-06-23 Hank 23
2014-06-30 Gord 27
2014-06-30 Hank 28
查询
SELECT
cur.Date,
cur.Player,
prev.Score AS ScoreLastWeek,
cur.Score AS ScoreNow,
cur.Score - prev.Score AS Change
FROM
Scores cur
INNER JOIN
Scores prev
ON cur.Player = prev.Player
AND cur.Date = DateAdd("d", 7, prev.Date)
返回
Date Player ScoreLastWeek ScoreNow Change
---------- ------ ------------- -------- ------
2014-06-30 Gord 30 27 -3
2014-06-30 Hank 23 28 5
答案 1 :(得分:0)
获得当前平均得分:
select player, avg(score)
from score_table
group by player
order by avg;
要获得一周前的平均分数,你可以这样做:
select player, avg(score)
from score_table
where score_table.date < now()-'1 week'::interval
group by player
order by avg;
这可以让您开始获取一些数据,并在您的应用中合并以产生所需的输出。