sql - 使用 group by 获取最新的日期记录
问题描述
我正在尝试使用具有唯一 report_ids (col_1_0_) 的最新记录来获取记录。可能按 col_1_0_ 分组,并使用此列 col_10_0_ 时间戳获取该组记录的最新信息。
我试图搜索这个论坛以找到方法,但它对我不起作用。如果有人帮助我找到类似的线程或帮助我获得结果,那将会很有帮助。
col_1_0_|ppi_event_id|col_2_0_ |col_10_0_ |
--------|------------|--------------------------|-----------------------|
149056| 3249|Draft |2020-08-25 13:01:49.016|
149056| 3249|Submitted | 2020-08-25 13:10:22.01|
149056| 3249|Submitted to administrator|2020-08-25 13:12:39.367|
149056| 3249|Validated |2020-08-25 13:13:28.879|
149060| 3249|Submitted to administrator|2020-08-25 13:32:41.924|
预期的结果是
col_1_0_|ppi_event_id|col_2_0_ |col_10_0_ |
--------|------------|--------------------------|-----------------------|
149056| 3249|Validated |2020-08-25 13:13:28.879|
149060| 3249|Submitted to administrator|2020-08-25 13:32:41.924|
任何人都可以在这方面提供帮助。更新:我已经尝试过下面提到的解决方案,但有时它会显示第一条记录“草稿”而不是“已验证”还有其他选项可以尝试吗?
解决方案
在 Postgres 中,我建议使用distinct on
: 这是对 SQL 标准的一个很好的扩展,它是为您描述的目的而构建的。
select distinct on (col_1_0) t.*
from mytable t
order by col_1_0, col_10_0_ desc
推荐阅读
- html - 有人可以从 Chrome 书签导出文件中的每个链接中解释 ICON 属性末尾的长字符串吗?
- python - 使用 numpy 数组(PLOTLY)对球形体积内的均匀分布的随机点进行采样
- capl - [CAPL]CANoe中如何将信号从一个CAN通道的PDU路由到另一个CAN通道?
- python - 用python(熊猫数据框)替换时间序列数据中的缺失值
- c# - 通过 HTMLagilitypack 从 Binance 获取比特币价值
- python - 使用 Python 捕获 GPA 的正则表达式
- html - 如何标签是否支持 HTML 代码?
- c++ - 返回 SHA256 值的 OpenSSL 问题 - C++
- python - Django & Pyrebase:我如何知道我的电子邮件是否在 Firebase 中得到验证
- python - 使用字符串python拆分pdf