sql - 如何设置子查询以获取具有最新日期和最大 ID 的单个记录?
问题描述
我需要设置一个查询,结果是一个表,其中包含来自主表的特定列值的单个记录,每条记录必须有最新的日期,如果最新日期在多条记录中相同,我只需要一条记录最大的身份。
到目前为止,我正在使用
Select id, p_id, max(date), column1, etc
From table
Group by p_id
但是我需要另一部分为 p_id 提供一条记录,每个记录都有最新的日期和最大的 id。
解决方案
只需使用distinct on
:
select distinct on (p_id) t.*
from mytable t
order by p_id, date desc, id desc
对于每一个p_id
,这都会为您提供最大的行date
。列id
用作决胜局。
推荐阅读
- algorithm - 如何在考虑人类感知的情况下测量 RGB 颜色之间的差异
- excel - 使用 Excel 自动化 Edge
- python - 比较每个 numpy 数组列表中的每个项目
- python - 在每行代码之后打印变量的值
- google-analytics - 将关联查询参数“r”转换为 Google Analytics 上的 UTM 标签
- ios - 从特定视图创建 PDF 文件
- ios - Xcodebuild 脚本错误:未找到 *.h 文件
- instagram-api - Instagram MediaID/短代码到 URL
- django - django:从 html 获取用户输入,对其进行处理并在同一页面中显示输出
- c - 将参数传递给 C 中的可变参数函数