我有一个包含数据的表,它的主键是一个非整数(准确地说,是UUID)。每一行还包含一个插入时间戳。
我想要做的是查询表并获得按时间戳向下排序的数据,但不超过某个主键。
所以,如果我做了SELECT * FROM data ORDER BY timestamp DESC,我想从这个结果集中去掉那些行,这些行是在某个主键之后按时间顺序添加的。
这是Postgresql 9.4中的一个查询吗?
发布于 2015-04-22 13:09:03
是的,您只需添加带子查询的where子句,以提取在所涉主键之前添加的子句:
SELECT * FROM data WHERE timestamp <= (SELECT timestamp FROM data WHERE id = YOUR_ID) ORDER BY timestamp DESC;或者,仅选择在所涉PK之后选择的记录:
SELECT * FROM data WHERE timestamp >= (SELECT timestamp FROM data WHERE id = YOUR_ID) ORDER BY timestamp DESC;删除这两种情况下的“=”,以删除时间戳上的完全匹配(可能只是主键本身)
https://stackoverflow.com/questions/29798529
复制相似问题