【发布时间】:2019-04-21 02:49:44
【问题描述】:
我见过与此类似的问题,但似乎没有一个完全涵盖我正在尝试构建的查询。
我有一个服务器的请求日志数据库,其中包括入站和出站连接,我正在尝试获取每个请求的日志中的第一项。
数据库看起来有点像这样: id、requestid、时间戳、消息
我想按 requestid 分组,但从每个 requestid 中获取最低的 id,这将是请求的第一个日志项。
我发现了类似的按 requestid 分组然后按 requestid 排序的请求,但这并没有给出我想要的。我尝试添加 orderby requestid, id,但这也将 id 2 作为返回的第一个项目。
这是我最近的一次: select id, requestid from logs where id in (select distinct on (requestid) id from (select id, requestid from logs order by id) as foo) order by id limit 5; 但返回的第一项是 id 2,而不是 id 1。
对此的任何提示都会非常有帮助,谢谢。
【问题讨论】:
-
我查看了该帖子并在第二个答案中尝试了 Postgres 答案,但这并没有按我的意愿工作。不过,我刚刚尝试了第一个分区答案,并且确实有效
标签: database postgresql greatest-n-per-group