Teradata Informatica:如何在Informatica中从多行中选择已排序的记录,或同时获取两列的最大值
我有如下要求 资料来源:Teradata Informatica:如何在Informatica中从多行中选择已排序的记录,或同时获取两列的最大值,teradata,informatica-powercenter,Teradata,Informatica Powercenter,我有如下要求 资料来源: prod_id DATE Price Count(Price) 1 01-02-2017 100 1 1 01-02-2017 10 4 2 02-02-2017 50
prod_id DATE Price Count(Price)
1 01-02-2017 100 1
1 01-02-2017 10 4
2 02-02-2017 50 1
2 02-02-2017 60 1
我有这样的数据。现在,我需要为每个唯一的prod\u id
和date
组合选择带有max(count(Price))
的记录,但如果count(Price)
相同,则应采用max(Price)
或根据count(Price)
和Price
对列进行排序,然后选择顶部记录。我是通过使用一个聚合器来实现这些数据的,该聚合器按产品id、日期列进行分组,并在价格上进行计数
,而不是直接表格。我怎样才能做到这一点?有什么建议吗
谢谢,
Priyanka根据计数(价格)和价格按顺序对记录进行排序,并使用一个聚合器,将prod_id和date作为键。不要使用任何聚合函数。聚合器将传递每个组的最后一条记录。根据计数(价格)和价格按该顺序对记录进行排序,并使用以产品id和日期为键的聚合器。不要使用任何聚合函数。聚合器将传递每个组的最后一条记录。标记Teradata时,可以通过添加
select .....
qualify
row_number()
over(partition by prod_id
order by Count(Price) desc, Price desc) = 1
添加到当前查询。标记Teradata时,可以通过添加
select .....
qualify
row_number()
over(partition by prod_id
order by Count(Price) desc, Price desc) = 1
到您当前的查询。我想要记录:对于产品id:1->价格:10和对于产品id:2->价格:60我想要记录:对于产品id:1->价格:10和对于产品id:2->价格:60