簡単な質問があります:
テーブルがありますpostgresql
: Scores(score integer)
。
最も早く上位 10 位のスコアを獲得するにはどうすればよいでしょうか?
アップデート:
私はこのクエリを複数回実行し、最速の解決策を目指します。
ベストアンサー1
これには、制限
select *
from scores
order by score desc
limit 10
パフォーマンスが重要な場合 (重要でないときもありますが ;-)、スコアのインデックスを探してください。
バージョン8.4以降では、標準の(SQL:2008)fetch first
select *
from scores
order by score desc
fetch first 10 rows only
@Raphvannsが指摘したように、これはfirst 10 rows
文字通りの値になります。重複した値を削除するには、distinct
行、例
select distinct *
from scores
order by score desc
fetch first 10 rows only