Sql 如果Netezza在聚合时不支持“第一个”和“最后一个”,如何继续?
我想将数据分组到一个名为CustID的列中,并选择他们的第一个或最后一个抵押,即使抵押是在同一天发起的。在Netezza你是怎么做到的?在MS Access中,我通常使用第一个或最后一个聚合函数 数据如下:Sql 如果Netezza在聚合时不支持“第一个”和“最后一个”,如何继续?,sql,netezza,Sql,Netezza,我想将数据分组到一个名为CustID的列中,并选择他们的第一个或最后一个抵押,即使抵押是在同一天发起的。在Netezza你是怎么做到的?在MS Access中,我通常使用第一个或最后一个聚合函数 数据如下: CustID mortgageID pass_dt 101 090234W 1-23-1989 101 103120X 5-20-2020 101 103121V 5-20-2020 所以这里我想要第二个或第三个记录,但当额外标准通
CustID mortgageID pass_dt
101 090234W 1-23-1989
101 103120X 5-20-2020
101 103121V 5-20-2020
所以这里我想要第二个或第三个记录,但当额外标准通过时,不是两个都要
非常感谢 如果需要整个记录,请使用窗口功能:
select t.*
from (select t.*, row_number() over (partition by custid order by pass_dt desc) as seqnum
from t
) t
where seqnum = 1
如果您解释了您提供的代码是如何回答该问题的,那么这将是一个更好的答案。这实际上也起了作用,因为SQL server仍然可以通过MAX函数从mortgageID列表中仅选择1项。谢谢。谢谢,这让我学到了一些新东西!效果很好。
select CustID, max(mortgageID), max(pass_dt) from t1 group by 1;