Aggregator transformation.....how to get all columns in output

  • 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) ?

  • 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


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • 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.

    If you haven't even tried to resolve your issue, please don't expect the hard-working volunteers here to waste their time providing links to answers which you could easily have found yourself.

  • 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

  • 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