I wanted to know how would i count most donated number for a person and how to make list from most donator to the lowest.
Database looks like this :
x
- Donated Amount - Payer Email
- 10 123456@hotmail.com
- 5 125643@hotmail.com
- 5 123456o@gmail.com
- 20 6653211@live.de
- 5 1256431@live.de
- 10 6558714@gmail.com
Note : If anyone would guide me on how the table is made on stackoverflow, thank you.
Advertisement
Answer
The easiest is to group by the email, sum the amount to get a total, and order by descending total.
SELECT
`Payer Email`,
SUM(`Donated Amount`) AS DonatedAmount
-- , COUNT(*) AS TimesDonated
-- , MAX(`Donated Amount`) AS BiggestDonation
FROM YourDonationsTable
GROUP BY `Payer Email`
ORDER BY DonatedAmount DESC
And if you want only the top 3 of those, add a LIMIT 3
at the end of the SQL.