排行榜的问题,上升及下降排名如何设置?
排行榜的问题,上升及下降排名如何设置?
现在有一个问题,我有一个榜单数据,每天都会排出来一次
譬如,表table1
account | value1 | Order
------------------------
bbb 30 1
ccc 15 2
aaa 10 3
第二天又会排出一个名次,还是表table1,即把昨天覆盖了
account | value1 | Order
------------------------
aaa 40 1
bbb 30 2
ccc 15 3
因为account每天消费的值不一样,所以Order会变化。
***********************************************
******************* 问题来了 ******************
***********************************************
我如何得到account上升的名次?
account | OrderChanged
------------------------
aaa +2
bbb -1
ccc -1
因为我每次排榜的时候都会将之前的覆盖,所以以前的没有了。
所以我的想法是:在table1中加一个字段,然后通过临时表来保存上一个表,最后计算出来。
不知道有没有更好的方法,如果有,请不吝赐教!
也就是我第二天排出来的应该是这样:
account | value1 | Order | OrderChanged
-----------------------------------------
aaa 40 1 +2
bbb 30 2 -1
ccc 15 3 -1
因为我之前排的时候已经有LEFT OUTER JOIN了。怎么再JOIN进去?
INSERT database.bx_top_level
SELECT t0.ID, t0.Value1, t1.Name, t2.Name, @nRankOrder:=@nRankOrder + 1 FROM database.account AS t0
LEFT OUTER JOIN (database.factroy_info AS t1, database.address_info AS t2) ON (t1.FactroyID=t0.FactroyID AND t2.AddressID=t0.AddressID)
ORDER BY Value1 Desc;
t1.Name,t2.Name在Account中没有,而是一个外键到factroy_info和address_info中。