I want to do a conditional aggregation in order to sum some values of a column into different columns. The data is this:
| id | amount | status |
|---|---|---|
| 1 | 100 | confirmed |
| 1 | 50 | confirmed |
| 1 | 50 | unconfirmed |
| 1 | 10 | unconfirmed |
I want to make it like this:
| confirmed | unconfirmed | total |
|---|---|---|
| 150 | 60 | 210 |
Currently, I'm able to do this by using raw SQL
SELECT
sum(amount) FILTER (WHERE status = 'confirmed') AS confirmed,
sum(amount) FILTER (WHERE status = 'unconfirmed') AS unconfirmed,
sum(amount) AS total
FROM table_name
WHERE id = 1
How can I make this query using gorm?