Is it possible to perform group by and sum operation in Mapper/Conditional snap?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-30-2022 01:39 AM
Is it possible to perform sum of the values by grouping them on few fields in mapper/conditional snap in snaplogic.
Because with aggregate snap I’m losing all input fields and keeping copy snap is taking more time to execute.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-30-2022 01:52 AM
Hi @nirupama,
There’s a group by functionality on the Aggregate snap that will allow you to have the input data in a group after you’re done with your calculations (Aggregation).
Another option is to use a Group by N snap, with 0 in group size which will add all incoming objects to one array. After that, you’ll need to add a Mapper snap with the following expression:
$array.reduce((acc, curr)=> acc + curr, 0)
You probably going to need to amend the expression per your needs. For example if you have an array of objects, and you need to calculate a specific field (ex. “Age”) the expression will look something like this:
$array.reduce((acc,curr)=> acc + curr.Age,0)
Regards,
Bojan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-30-2022 03:02 AM
Hi @bojanvelevski ,
Thanks you. I tried with group by N(It does batching randomly), but I want to group them based on 3 fields say $A,$B,$C and then I want to do SUM on other field $D.Is there any such functionalities available in snaplogic using mapper?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-30-2022 03:31 AM
Same thing applies to your use case, just the grouping is a little bit different and you’ll have to use Group by Fields
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-05-2022 05:54 AM
@bojanvelevski I was trying with this approach, but getting below error.
expression using : $.reduce((acc,curr)=> acc + curr.INSTALLCUQTY,0)
Also, getting ‘null’ as output for sum.