条件与红移窗函数最大值参考

问题描述 投票:0回答:2

我有日期,帐户和数据源的列表。我以每个帐户的最新max日期和使用我的窗口引用这个数字。

在我的窗口参考,我使用row_number ()分配给每个帐户的独特行和我们收到并通过max日期为每个帐户和数据源分类整理数据的来源。最终的结果应该列出每一行对应一个唯一的帐户+数据组合的来源,在该组合中可用的最大日期。最高日记录将列出1。

我想设置仅与1填充行查询列出我的窗函数的条件,而不是显示在所有其他的人。这就是我下面有和我卡住:

SELECT
  date,
  account,
  data source,
  MAX(date) max_date,
  ROW_NUMBER () OVER (PARTITION BY account ORDER BY max_date) ROWNUM
FROM table
GROUP BY
  date,
  account,
  data source

任何帮助是极大的赞赏。我可以根据需要在任何详细说明

amazon-redshift
2个回答
0
投票

如果我理解你的问题正确这个SQL会做的伎俩

SELECT 
  date,
  account,
  data source,
  MAX(date) max_date
FROM (    
      SELECT
        date,
        account,
        data source,
        MAX(date) max_date,
        ROW_NUMBER () OVER (PARTITION BY account ORDER BY max_date) ROWNUM
      FROM table
      GROUP BY
        date,
        account,
        data source
  )
where ROWNUM = 1

0
投票

如果你并不需要比唯一性,其他任何的行号,然后像这样的查询应该工作:

select distinct t.account, data_source, date
from table t
join (select account, max(date) max_date from table group by account) m
on t.account=m.account and t.date=m.max_date

这仍然可以产生两个记录一个账户如果两个记录不同的数据源具有相同的日期。如果这是一个可能性,然后mdem7的做法可能是最好的。

这是从这个问题有点不清楚,但如果你想帐户和DATA_SOURCE其最大日期,确保有没有重复的每一种组合,则明显要足够:

select distinct account, data_source, max(date) max_date
from table t
group by account, data_source
© www.soinside.com 2019 - 2024. All rights reserved.