这可能很简单,但我是SQL的新手,无法找到如何做到这一点。
我有以下表格:
我的要求如下:
对于每个频率,我需要每个频率,我需要最新的日期和时间。最新日期的最大版本。 例如:Dim'A'和&频率'每月'及其最新日期&最新日期的最高版本。昏暗的'A'和&频率'Weekly'及其最新日期&最新日期的最高版本。
有人可以帮帮我吗?
我尝试使用以下查询,但没有返回正确的值:
SELECT Dim, Frequency, Date, Version
FROM sample_tbl
WHERE ( Frequency, Date,
Version ) IN (
select Frequency, max(Date), max(Version)
from sample_tbl
group by 1
);
答案 0 :(得分:1)
我Postgres,我认为distinct on
能做你想做的事:
select distinct on (dim, frequency) s.*
from sample_tbl s
order by dim, frequency, date desc, version desc;
对于每个dim
/ frequency
组合,这将返回一行。该行是基于order by
子句遇到的第一行。