2013-03-02 58 views
0

让我们假设在数据库中有这些值:PostgreSQL - 如何返回最后的X值?

time_column

2013-03-02 19:00:00 
2013-03-02 20:00:00 
2013-03-02 21:00:00 
2013-03-02 22:00:00 

我需要获得最后3个记录包括与一排,这是在查询中的值。

SELECT * FROM table WHERE time_column =< '2013-03-02 22:00:00' LIMIT 3 

该查询返回这些行(无22:00:00):

2013-03-02 19:00:00 
2013-03-02 20:00:00 
2013-03-02 21:00:00 

但我需要得到这些的:

2013-03-02 20:00:00 
2013-03-02 21:00:00 
2013-03-02 22:00:00 

但如何做到这一点?

谢谢

编辑:有一种方式来获得应用层上所需要的行,但是如果有可能得到的是从SQL,那将是巨大的。

+0

请参阅'ORDER BY'。 – 2013-03-02 19:02:31

+0

它与没有包含的比较值没有任何关系 - 这只是样本数据的人为因素。 – 2013-03-02 19:03:47

回答

3
SELECT * FROM table WHERE time_column =< '2013-03-02 22:00:00' 
ORDER BY time_column DESC 
LIMIT 3 
+0

哦,我需要一个假期!我的问题看起来像我刚刚第一次来到电脑......不过,谢谢马林。 – user984621 2013-03-02 19:05:24