我有许多数据库记录,用于相隔数周的实验,通常间隔约2-3周。目标是按日期选择最新结果以生成报告。这是一个示例数据集。对于此数据集,目标是选择最后一行,因为它是deleteXml()
QL_ID
的最新测量值。
P14404
是主键,QL_ID
是样本的度量值,QL_VAL
是测量的日期。表名为MEASUREMENT_DATE
。我可以使用下面的查询获取最新日期和QL_RESULTS
,但我仍然坚持如何获取所有3列,即QL_ID
。
QL_VAL,QL_ID,MEASUREMENT_DATE
SELECT QL_ID,MAX(MEASUREMENT_DATE) FROM QL_RESULTS
GROUP BY QL_ID
答案 0 :(得分:0)
根据测量日期,您可以rank
每ql_id
行:
SELECT ql_val, ql_id, measurement_date
FROM (SELECT ql_val, ql_id, measurement_date,
RANK() OVER (PARTITION BY ql_id
ORDER BY measurement_date DESC) AS rk
FROM ql_results) t
WHERE rk = 1
答案 1 :(得分:0)
我认为苗条的解决方案就是这个:
SELECT QL_ID, MAX(MEASUREMENT_DATE),
MAX(QL_VAL) KEEP (DENSE_RANK LAST ORDER BY MEASUREMENT_DATE) as QL_VAL
FROM QL_RESULTS
GROUP BY QL_ID;