May 29, 2014 at 12:15 pm
Hi all,
I am trying to use Aggregator transformation to do the sum on one column based on group by on another column, but when i do it i am getting on these two columns in the output records... I have 23 other columns that i want as output column. How to achieve this in ssis.
Below is what i have in my package.
Source which has 25 columns
Aggregator ( group by on column1 and sum on column2)
output ( I need all 25 columns) ?
May 30, 2014 at 11:39 pm
sattar419 10789 (5/29/2014)
Hi all,I am trying to use Aggregator transformation to do the sum on one column based on group by on another column, but when i do it i am getting on these two columns in the output records... I have 23 other columns that i want as output column. How to achieve this in ssis.
Below is what i have in my package.
Source which has 25 columns
Aggregator ( group by on column1 and sum on column2)
output ( I need all 25 columns) ?
I can't speak for SSIS but here's how I might do it in T-SQL... that is, if it made sense to do so. The "aggregator" will give you the sum of all Column2s grouped by Column1 and will be repeated for each unique value for Column1 (as in "group").
SELECT Column1
,Aggregator = SUM(Column2) OVER (PARTITION BY Column1)
,Column2
,Column3
,Column4
,Column5
,Column6
,Column7
,Column8
,Column9
,Column10
,Column11
,Column12
,Column13
,Column14
,Column15
,Column16
,Column17
,Column18
,Column19
,Column20
,Column21
,Column22
,Column23
,Column24
,Column25
FROM dbo.YourTable
--Jeff Moden
Change is inevitable... Change for the better is not.
June 4, 2014 at 12:12 am
Jeff's suggestion is a good one. Aggregation in SSIS is a blocking transformation and should be avoided if possible. It's also slower than the SQL Server database engine.
The absence of evidence is not evidence of absence
- Martin Rees
The absence of consumable DDL, sample data and desired results is, however, evidence of the absence of my response
- Phil Parkin
June 4, 2014 at 12:31 am
Phil Parkin (6/4/2014)
Jeff's suggestion is a good one. Aggregation in SSIS is a blocking transformation and should be avoided if possible. It's also slower than the SQL Server database engine.
And you cannot do window aggregations with that component, which seems to be the use case here.
Conclusion: use TSQL 😀
Need an answer? No, you need a question
My blog at https://sqlkover.com.
MCSE Business Intelligence - Microsoft Data Platform MVP
July 25, 2014 at 6:01 pm
In the Aggregator transform you select columns to group by and those to aggregate on, so the other 23 would indicate a group by. Note that you can use this Aggregator instead of t-sql if you're data is not all on the same machine. SSIS is meant for pulling data from different systems and will perform better in this regard. If all your data is on the same machine, use t-sql in the data source instead.
Best
----------------------------------------------------
Viewing 5 posts - 1 through 4 (of 4 total)
You must be logged in to reply to this topic. Login to reply