3

データベースにはテーブルがありますpersons

id          int
points      int
voted_on    int 
other columns

idxの行がどの行ランクを持っているか、同じポイントの行が同じ行ランクを持っているかを知りたいです。このクエリは素晴らしく高速に機能します: (ただし、さらに優れたクエリを知っている場合は教えてください:)

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を持つ人は、同じ行ランクを持つ必要があります。

4

1 に答える 1