Merging maps in list based on matching value

Hey I have a list of maps, and those maps are items such:

[
%purchase{
    amount: #Decimal<2.0>,
    command: "buy",
    id: 71,
    price: #Decimal<90.394>,
  },
%purchase{
    amount: #Decimal<1.0>,
    command: "buy",
    id: 72,
    price: #Decimal<90.394>,
  }
]

As you can see the prices are the same but the amount isn’t how would you go through the list to merge the items with the same price to get something like this:

[
%purchase{
    amount: #Decimal<3.0>,
    command: "buy",
    price: #Decimal<90.394>,
  }
]