スコアに基づいてユーザーのランクを見つける必要がある Web サイトに取り組んでいます。以前、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
日々増加し、Web サイトの速度が低下するため、上記のクエリを使用できません。
必要なのは、上記のクエリでデータを選択し、スコアという名前の別のテーブルに挿入することです。このようなことはできますか?