簡體   English   中英

SSIS數據流中的排名/行數功能

[英]Rank/Rownumber function in SSIS Dataflow

在我的數據流中,經過一些查找后,我將根據客戶的一些屬性(例如城市,地理位置)獲得重復的客戶記錄(它們不是完全重復的,只是客戶ID相同)。 我需要從中選擇一項記錄。

我如何在SSIS數據流中實現這一目標

這是示例數據:

;with cust (CustomerID,Cutomer_Name,score)
as 
(Select 1 as CustomerID, 'abd' as Cutomer_Name, 100 as Score
union 
select 1,'abd',null
union select 1,'abd',20
)  

select * from cust   

從這里,我需要選擇得分最低的記錄,並將該行僅發送到決賽桌。

使用SQL中的Rownum函數很容易實現,但是這種情況發生在SSIS中的數據流期間

在SQL命令上執行源的數據訪問模式。

在此處輸入圖片說明

使用MultiCast將其拆分為兩個輸出-例如Output1和Output2。 輸出之一連接到匯總轉換和“按客戶ID分組”,並執行“最低分數”。 現在,使用映射映射Output2.CustomerId = Aggregate Transform.Score和Output2.CustomerId = Aggregate Transform.Score的合並聯接將Aggregate變換的輸出連接回Output2。 這可以解決問題,但是如果您有多個具有相同分數的customerId,則在此步驟之后可能需要進行排序以刪除重復項。 希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM