【发布时间】:2018-05-15 03:53:30
【问题描述】:
我是 Teradata 新手,谁能帮我解决以下问题。
我有一个包含数百万条记录的自定义表格,如下所示:
基本上,我需要按产品和最晚购买日期对金额进行分组。我需要的列是 Cust_id、Cust_name、日期、产品和金额。
需要如下结果集:
请帮帮我。
提前致谢!
【问题讨论】:
-
为什么 id
601的记录没有包含在所需的输出中
我是 Teradata 新手,谁能帮我解决以下问题。
我有一个包含数百万条记录的自定义表格,如下所示:
基本上,我需要按产品和最晚购买日期对金额进行分组。我需要的列是 Cust_id、Cust_name、日期、产品和金额。
需要如下结果集:
请帮帮我。
提前致谢!
【问题讨论】:
601 的记录没有包含在所需的输出中
您可以将聚合与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;
结果:
附注目前尚不清楚为什么您的示例所需输出中缺少 ID 为 601 的记录
【讨论】: