【问题标题】:SQL LIMIT, but from the endSQL LIMIT,但从头到尾
【发布时间】:2012-06-26 04:31:41
【问题描述】:

你能LIMIT从结果的末尾而不是从头开始查询吗?特别是,我正在寻找一个带有 Postgresql 的解决方案,如果这会有所作为。

请允许我用一个例子来澄清一下。

假设我想返回 people 表中年龄最大的 3 个人,但按年龄升序排列。我知道如何选择 3 个人的最佳方式返回正确的记录,但顺序相反:

SELECT * FROM people
ORDER BY age DESC
LIMIT 2

【问题讨论】:

  • @marc_s,是的,但是它们的顺序错误
  • 查看 Kshitij 的回答 - 按相反方向排序,取 TOP 2,然后再次排序

标签: sql postgresql


【解决方案1】:

应该这样-

SELECT * FROM (
SELECT *
FROM PEOPLE
ORDER BY AGE DESC
LIMIT 3 ) X
ORDER BY AGE ASC

【讨论】:

  • 我编辑了查询以在子查询后添加别名;我很确定这是 PostgreSQL 的要求。
猜你喜欢
  • 2015-04-18
  • 2014-04-03
  • 2018-10-29
  • 2016-08-29
  • 1970-01-01
  • 2011-10-26
  • 2020-01-24
  • 2011-04-06
  • 2013-07-17
相关资源
最近更新 更多