如何根据超过1列进行排名?分区和按条款排序

时间:2015-08-05 13:30:16

标签: sql rank informatica-powercenter

当Partition By子句也有多个列时,如何在多个列上使用Informatica Powercenter中的SQL排名功能? 如下例所示:

RANK() OVER (PARTITION BY  A,  B,  C,  D, E  
             ORDER BY F,  G,  H  )

我已经尝试过EXPRESSION转换,但是由于我们需要连接到比较,它会失去精确度。并尝试RANK转换,但它只接受一列的排名。

还有其他方法可以带领吗?

感谢。

1 个答案:

答案 0 :(得分:1)

我已经找到了一些示例输入,希望这会对你有帮助..

流速:

SQ --> Sorter --> Aggregator --> | --> Joiner --> Target
               |---------------> |

输入:

Col1|Col2|Col3|Col4|Col5|Col6|Col7|Col8
1|2|3|4|5|1|1|2
1|2|3|4|6|1|1|3
1|2|3|4|5|1|1|1
1|2|3|4|5|1|1|1
1|2|3|4|6|1|1|4

输出:

Col1|Col2|Col3|Col4|Col5|Col6|Col7|Col8|Rank
1|2|3|4|5|1|1|1|1
1|2|3|4|5|1|1|1|1
1|2|3|4|5|1|1|2|3
1|2|3|4|6|1|1|3|4
1|2|3|4|6|1|1|4|5

映射:

Partition