postgresql で上位 10 個の値を取得するにはどうすればよいでしょうか? 質問する

postgresql で上位 10 個の値を取得するにはどうすればよいでしょうか? 質問する

簡単な質問があります:

テーブルがありますpostgresql: Scores(score integer)

最も早く上位 1​​0 位のスコアを獲得するにはどうすればよいでしょうか?

アップデート:

私はこのクエリを複数回実行し、最速の解決策を目指します。

ベストアンサー1

これには、制限

select *
from scores
order by score desc
limit 10

パフォーマンスが重要な場合 (重要でないときもありますが ;-)、スコアのインデックスを探してください。


バージョン8.4以降では、標準の(SQL:2008fetch 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

SQL フィドル

おすすめ記事