Informatica中实现count(distinct)

Thanks for your response. Here is the sample data information: 

A id1 $200 
A id1 $300 
A id2 $150 
B id3 $100 
B id4 $20 

I want the following in the output: 
Name distinct-Count Totalamt 
A 2 $650 

B 2 $120 


One way to do this is to use 2 aggregators. The First aggregator group and sum amt by Name and ID. 
On the second aggregator group by Name and count id and sum amt.

So if I remove the duplicate row in the Sorter I will get incorrect distinct-count and totalamt for "A".

There are two different ways. 

1) Suggested by Manas - to use two aggregates. 
2)Flaging the record as 1 and 0 before aggregate. For this, you should have sorted data on name and id. 
If you have sorted data coming from source, try 2nd option as given below. 
In expression transformation before aggregator. 

IN_ID 
v_ID_CNT = IIF(ISNULL(v_ID) Or IN_ID!= V_ID,1, 0) 
O_ID_CNT=V_ID_CNT 
V_ID=IN_ID 

O_ID_CNT will go in to your aggregator. 

You need to create one more port in aggregator for SUM(O_ID_CNT) which will return the distinct count of IDs. 
(No change in GROUP BY columns)

阅读更多
个人分类: Informatica
上一篇SQLSERVER排查CPU占用高的情况
下一篇Informatica Powercenter调优
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭