聚合轉換功能類似於sql語句中的聚合函數。它應用列值,並將結果作為新列復制到轉換輸出中。聚合轉換支持下列運算功能
運算 |
說明 |
Group by |
將數據集划分為組。任何數據類型的列都可用於分組。 |
Sum |
對列中的值求和。只能對數值數據類型的列求和。 |
Average |
返回列中值的平均值。只能對數值數據類型的列求平均值。 |
Count |
返回組中項目的數量。 |
Count distinct |
返回組中的唯一非空值的數量。 |
Minimum |
返回組中的最小值。 |
Maximum |
返回組中的最大值。 |
添加並配置聚合轉換,則包必須已含有至少一個數據流任務和一個數據源。這里已一個簡單的例子來介紹一下如何配置聚合轉換。本例子的內容為:聚合每個訂單的總金額。如果用T-SQL的話也就一個語句就可以了:
select SalesOrderID,SUM(OrderQty*UnitPrice) amount from Sales.SalesOrderDetail
現在介紹通過聚合轉換如何獲取同樣的結果。
- 在BIDS中,打開包含所需包的Integration Services 項目。
- 在解決方案資源管理器中的SSIS包文件創建一個名為AggrationDemo的包,可以看到如下結果
- 在AggregationDemo包控制流選項卡中拖放一個數據流任務,如圖
- 在連接管理器中窗口中,創建一個OLEDB連接器連接本地數據庫AdventureWorks、一個平面文件連接器連接C:\Users\zhuyujing\Desktop\test.txt。如圖:
- 在數據流選項卡中,托動一個OLE DB源、派生列、聚合轉換以及目標平面文件。如圖:
各個控件配置如下:
- OLE DB源
- 派生列
- 聚合轉換
其中在比較標志列表中有四個復選框。表示的含義如下:
比較選項 |
說明 |
忽略大小寫 |
指定比較是否區分大小寫字母。如果設置了此選項,字符串比較會忽略大小寫。例如,"ABC" 和 "abc" 沒有區別。 |
忽略假名類型 |
指定比較是否區分日語的兩種假名字符類型:平假名和片假名。如果設置了此選項,字符串比較會忽略假名類型。 |
忽略字符寬度 |
指定比較是否區分字符的單字節形式和該字符的雙字節形式。如果設置了此選項,字符串比較將把同一字符的單字節形式和雙字節形式視為相同。 |
忽略非空格字符 |
指定比較是否區分空格字符和標注字符。如果設置了此選項,則比較會忽略標注字符。例如,"å" 與 "a" 相同。 |
- 目標平面文件
配置好控件阿任務后,執行該包。執行結果如下:
打開目標txt文本,看看執行的結果