Joe*_*lin 212 sql postgresql sql-limit
我有一个简单的问题:
我有一个postgresql
数据库:Scores(score integer)
.
我怎样才能获得最快10分?
更新:
我将多次执行此查询,并且我的目标是获得最快的解决方案.
Ola*_*che 325
为此你可以使用限制
select *
from scores
order by score desc
limit 10
Run Code Online (Sandbox Code Playgroud)
如果表现很重要(什么时候不是;-)寻找得分指数.
从8.4版开始,您也可以使用标准(SQL:2008)fetch first
select *
from scores
order by score desc
fetch first 10 rows only
Run Code Online (Sandbox Code Playgroud)
Grz*_*lik 35
好像你正在寻找ORDER BY
在DESC
结束以便与LIMIT子句:
SELECT
*
FROM
scores
ORDER BY score DESC
LIMIT 10
Run Code Online (Sandbox Code Playgroud)
当然SELECT *
可能会严重影响性能,因此请谨慎使用.
请注意,如果前 10 个值之间存在联系,您将只获得前 10 行,而不是提供答案的前 10 个值。例如:如果前 5 个值是 10, 11, 12, 13, 14, 15 但你的数据包含 10, 10, 11, 12, 13, 14, 15 你只会得到 10, 10, 11, 12, 13, 14 作为您的前 5 名LIMIT
这是一个解决方案,如果有平局,它将返回超过 10 行,但您将获得some_value_column
技术上位于前 10 名的所有行。
select
*
from
(select
*,
rank() over (order by some_value_column desc) as my_rank
from mytable) subquery
where my_rank <= 10
Run Code Online (Sandbox Code Playgroud)