这可能很简单,但我是 SQL 新手,无法准确找到如何执行此操作。
我有下表:
我的要求如下:
我需要,对于每个 Dim,对于每个频率,我需要最新日期和最新日期的最大版本。例如: Dim 'A' 和频率 'Monthly' 将有一排,它们的最新日期和最新日期的最大版本。并且将有另一行用于 Dim '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
);
我 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
子句遇到的第一行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句