首页 > 解决方案 > 获取最新测量值

问题描述

我有一张桌子,上面有一些测量值、ID 和日期。

桌子是这样建造的

ID     DATE    M1    M2
1      2020     1    NULL
1      2020    NULL   15
1      2018     2    NULL
2      2019     1    NULL
2      2019    NULL   1

我想最终得到一个表格,其中每个 ID 有一行,最近的测量值

ID M1 M2
1  1  15
2  1   1

有任何想法吗?

标签: sqlgreatest-n-per-group

解决方案


您可以将相关子查询与聚合一起使用:

select id, max(m1), max(m2)
from t 
where t.date = (select max(t1.date) from t t1 where t1.id = t.id)
group by id;

推荐阅读