stU*_*Urb 4 postgresql group-by postgresql-9.1 greatest-n-per-group
我有两个对象的一些数据,我想检索两个对象的最后一行,最好是在一个查询中。
表结构:
CREATE TABLE data
(
pid serial NOT NULL,
dt timestamp without time zone,
object_id integer,
info_1 numeric(10,8),
speed numeric,
CONSTRAINT dat_pid PRIMARY KEY (pid)
)
Run Code Online (Sandbox Code Playgroud)
样本数据:
1, 2014-04-29 12:02:56, 8, ....
2, 2014-04-29 12:02:10, 8, ....
3, 2014-04-29 12:01:02, 8, ....
5, 2014-04-29 12:01:32, 6, ....
.....
Run Code Online (Sandbox Code Playgroud)
我想要每个唯一的对象 ID 一行,每一行都是可用的最新行。我试图通过使用此查询来实现它,但它希望 pid 位于 group by 子句中。但我不想按 PID 分组,而是按跟踪器 ID 分组....
SELECT *
FROM data
GROUP BY object_id
Run Code Online (Sandbox Code Playgroud)
您可以DISTINCT ON用于此类查询:
SELECT DISTINCT ON (object_id) *
FROM data
ORDER BY object_id, dt DESC ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11371 次 |
| 最近记录: |