我正在网站上工作,我需要根据分数查找用户排名。之前我通过 sql query 计算用户的分数和排名。
select * from (
select
usrid,
ROW_NUMBER()
OVER(ORDER BY (count(*)+sum(sup)+sum(opp)+sum(visited)*0.3) DESC) AS rank,
(count(*)+sum(sup)+sum(opp)+sum(visited)*0.3 ) As score
from [DB_].[dbo].[dsas]
group by usrid) as cash
where usrid=@userid
请不要更专注于查询,因为这只是为了解释我如何选择数据。
问题:现在我不能使用上面的查询,因为每次我使用排名时,它都需要从dsas
表中选择排名,并且表的数据dsas
每天都在增加,从而降低了我的网站速度。
我需要的是通过上述查询选择数据并插入另一个名为 score 的表中。我们可以做这样的事情吗?