标签: sql teradata
我是Teradata的新手,任何人都可以通过以下查询帮助我。
我有一个包含数百万条记录的自定义表格,如下所示:
基本上,我需要按产品的最新购买日期对金额进行分组。我需要的列是Cust_id,Cust_name,date,Product和amount。
需要如下结果集:
请帮助我。
提前致谢!
答案 0 :(得分:3)
您可以使用聚合以及qualify和rank来获得所需的结果。
qualify
rank
select Custid, custname, Date1, product, sum(amount) as amount from table1 group by custid, custname, product, date1 qualify rank() over(partition by custid, custname order by date1 desc) = 1 order by custname asc, date1 desc;
<强>结果:强>
P.S。目前尚不清楚为什么样本期望输出中缺少标识为601的记录
601