Skip to main content

Notifications

Community site session details

Community site session details

Session Id :
Power Automate - Using Flows
Answered

SUM by GROUP from JSON in a flow

(0) ShareShare
ReportReport
Posted on by 4

Hello,

 

I am new to Power automate and need help. I am getting JSOn output like below from a step

 

{
"ID": 1,
"GROUP1": "State1",
"GROUP2": "ABC",
"Population": 4
},
{
"ID": 2,
"GROUP1": "State1",
"GROUP2": "ABC",
"Population": 1
},
{
"ID": 3,
"GROUP1": "State1",
"GROUP2": "XYZ",
"Population": 0
},
{
"ID": 4,
"GROUP1": "State1",
"GROUP2": "ABC",
"Population": 3.5
},
{
"ID": 5,
"GROUP1": "State1",
"GROUP2": "ABC",
"Population": 8
},
{
"ID": 6,
"GROUP1": "State2",
"GROUP2": "PQR",
"Population": 17
},
{
"ID": 7,
"GROUP1": "State2",
"GROUP2": "PQR",
"Population": 24
},
{
"ID": 8,
"GROUP1": "State2",
"GROUP2": "PQR",
"Population": 24
},
{
"ID": 9,
"GROUP1": "State1",
"GROUP2": "LWD",
"Population": 7.5
},
{
"ID": 10,
"GROUP1": "State1",
"GROUP2": "LMQ",
"Population": 2
},
{
"ID": 11,
"GROUP1": "State1",
"GROUP2": "LMQ",
"Population": 2
}


and I want output in JSON like below so that i can save it in excel and send email.

 

Group1 - State1
GROUP2 - ABC
Population - Sum of Population by GROUP1 and GROUP2 i.e 16.5

 

Group1 - State1
GROUP2 - XYZ
Population - Sum of Population by GROUP1 and GROUP2 i.e 0

 

Group1 - State1
GROUP2 - LWD
Population - Sum of Population by GROUP1 and GROUP2 i.e 7.5

 

Group1 - State1
GROUP2 - LMQ
Population - Sum of Population by GROUP1 and GROUP2 i.e 4

 

  • Harish1978IND Profile Picture
    4 on at
    Re: SUM by GROUP from JSON in a flow

    Awesome. Thanks a Lot 🙂

  • Verified answer
    Chriddle Profile Picture
    7,669 Super User 2025 Season 1 on at
    Re: SUM by GROUP from JSON in a flow

    With a little help from xPath

     

    Chriddle_0-1694093602381.png

     

    With your data array in the Compose action:

    Spoiler (Highlight to read)
    [
    {
    "ID": 1,
    "GROUP1": "State1",
    "GROUP2": "ABC",
    "Population": 4
    },
    {
    "ID": 2,
    "GROUP1": "State1",
    "GROUP2": "ABC",
    "Population": 1
    },
    {
    "ID": 3,
    "GROUP1": "State1",
    "GROUP2": "XYZ",
    "Population": 0
    },
    {
    "ID": 4,
    "GROUP1": "State1",
    "GROUP2": "ABC",
    "Population": 3.5
    },
    {
    "ID": 5,
    "GROUP1": "State1",
    "GROUP2": "ABC",
    "Population": 8
    },
    {
    "ID": 6,
    "GROUP1": "State2",
    "GROUP2": "PQR",
    "Population": 17
    },
    {
    "ID": 7,
    "GROUP1": "State2",
    "GROUP2": "PQR",
    "Population": 24
    },
    {
    "ID": 8,
    "GROUP1": "State2",
    "GROUP2": "PQR",
    "Population": 24
    },
    {
    "ID": 9,
    "GROUP1": "State1",
    "GROUP2": "LWD",
    "Population": 7.5
    },
    {
    "ID": 10,
    "GROUP1": "State1",
    "GROUP2": "LMQ",
    "Population": 2
    },
    {
    "ID": 11,
    "GROUP1": "State1",
    "GROUP2": "LMQ",
    "Population": 2
    }
    ]
    [ { "ID": 1, "GROUP1": "State1", "GROUP2": "ABC", "Population": 4 }, { "ID": 2, "GROUP1": "State1", "GROUP2": "ABC", "Population": 1 }, { "ID": 3, "GROUP1": "State1", "GROUP2": "XYZ", "Population": 0 }, { "ID": 4, "GROUP1": "State1", "GROUP2": "ABC", "Population": 3.5 }, { "ID": 5, "GROUP1": "State1", "GROUP2": "ABC", "Population": 8 }, { "ID": 6, "GROUP1": "State2", "GROUP2": "PQR", "Population": 17 }, { "ID": 7, "GROUP1": "State2", "GROUP2": "PQR", "Population": 24 }, { "ID": 8, "GROUP1": "State2", "GROUP2": "PQR", "Population": 24 }, { "ID": 9, "GROUP1": "State1", "GROUP2": "LWD", "Population": 7.5 }, { "ID": 10, "GROUP1": "State1", "GROUP2": "LMQ", "Population": 2 }, { "ID": 11, "GROUP1": "State1", "GROUP2": "LMQ", "Population": 2 } ]

    Groups is a Select action to isolate only group information

    From: @{outputs('Compose')}

    Map Group1:  @item()['GROUP1']

    Map Group2: @item()['GROUP2']

     

    DistinctGroups is a Compose action to make Groups distinct:

    union(body('Groups'), json('[]'))

     

    Sum calculates the sums in a Select action

    From: @{outputs('DistinctGroups')}

    Map Group1: @item()['Group1']

    Map Group2: @item()['Group2']

    Map Population:

    xpath(
    	xml(json(concat('{"root":{"item":', outputs('Compose'),'}}'))),
    	concat('sum(//item[GROUP1="', item()['Group1'], '" and GROUP2="', item()['Group2'], '"]/Population)')
    )

     

    Output:

    [
     {
     "Group1": "State1",
     "Group2": "ABC",
     "Population": 16.5
     },
     {
     "Group1": "State1",
     "Group2": "XYZ",
     "Population": 0
     },
     {
     "Group1": "State2",
     "Group2": "PQR",
     "Population": 65
     },
     {
     "Group1": "State1",
     "Group2": "LWD",
     "Population": 7.5
     },
     {
     "Group1": "State1",
     "Group2": "LMQ",
     "Population": 4
     }
    ]

     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

🌸 Community Spring Festival 2025 Challenge 🌸

WIN Power Platform Community Conference 2025 tickets!

Markus Franz – Community Spotlight

We are honored to recognize Markus Franz as our April 2025 Community…

Kudos to the March Top 10 Community Stars!

Thanks for all your good work in the Community!

Leaderboard

#1
WarrenBelz Profile Picture

WarrenBelz 146,658 Most Valuable Professional

#2
RandyHayes Profile Picture

RandyHayes 76,287 Super User 2024 Season 1

#3
Pstork1 Profile Picture

Pstork1 65,999 Most Valuable Professional

Leaderboard

Featured topics

Restore a deleted flow