Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Teradata Informatica:如何在Informatica中从多行中选择已排序的记录,或同时获取两列的最大值_Teradata_Informatica Powercenter - Fatal编程技术网

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