【发布时间】:2022-06-15 05:50:59
【问题描述】:
我正在使用 Postgres v12,并且我有一个包含重复行的表。我只需要检索每个重复项的最后一个条目,忽略没有重复的条目。
此表包含以下列:
- id(唯一)
- request_id(在哪里可以找到重复项)
- created_at(在哪里查看哪个条目是最新的)
| id | request_id | created_at |
|---|---|---|
| 1 | a | 2020.06.06 |
| 2 | a | 2020.05.05 |
| 3 | b | 2020.04.04 |
| 4 | b | 2020.03.03 |
| 5 | c | 2020.04.04 |
| 6 | c | 2020.03.03 |
| 7 | d | 2020.03.03 |
查询应该检索 id 为 1,3,5 的行,因为它们是每个重复项的最新条目 (created_at)。 ID 7 没有重复,因此被忽略。
我已经尝试过这里提出的解决方案:https://www.geeksengine.com/article/get-single-record-from-duplicates.html 但由于使用的是 Postgres v12,这些查询不起作用,我收到错误“列必须出现在 group by 子句中”,这是这里引用的另一个问题: must appear in the GROUP BY clause or be used in an aggregate function
我几天来一直在寻找解决这个问题的方法,但我不是 SQL 专家。非常感谢任何帮助。
【问题讨论】:
-
向我们展示您想要的输出
标签: sql postgresql