データベースにはテーブルがありますpersons
:
id int
points int
voted_on int
other columns
id
xの行がどの行ランクを持っているか、同じポイントの行が同じ行ランクを持っているかを知りたいです。このクエリは素晴らしく高速に機能します: (ただし、さらに優れたクエリを知っている場合は教えてください:)
select count(*)
from persons p cross join
(select points from persons p where p.id = x) const
where p.points > const.points;
しかし今、voted_on が少ないが同じ量のポイントを持つ人は、voted_on が多い人よりも行ランクが高いというクエリをアップグレードしたいと思います。ただし、同数のポイントとvoted_onを持つ人は、同じ行ランクを持つ必要があります。