SQL:按升序选择N个“最新”行

时间:2011-10-12 04:55:29

标签: sql sqlite postgresql

例如,如果我的数据如下所示:

timestamp | message
100 | hello
101 | world
102 | foo
103 | bar
104 | baz

如何按升序选择最近的三个行 - 102,103,104?

显而易见(对我而言)… LIMIT 3 ORDER BY timestamp DESC将返回正确的行,但顺序不正确。

1 个答案:

答案 0 :(得分:15)

使用内部选择选择正确的行,使用外部选择来正确排序:

SELECT timestamp, message
FROM
(
     SELECT *
     FROM your_table
     ORDER BY timestamp DESC
     LIMIT 3 
) T1
ORDER BY timestamp