0

Using oracle, how can I do this using a single query?

VALUE       TYPE        IDentifier     
12           aa         123
123          bb         123
323          aa         1234
1212         cc         123
2            aa         12345
123          dd         123

SELECT IDentifier , SUM(VALUE) AS typeAASum WHERE TYPE = 'aa'
SELECT IDentifier , SUM(VALUE) AS typeBBSum WHERE TYPE = 'bb'
SELECT IDentifier , SUM(VALUE) AS typeCCSum WHERE TYPE = 'cc'

So my results will be, again in a single query,

   IDentifier     TypeAASum    TypeBBSum     TypeCCSum  

It's important that I only get one row per Identifier.

Patrick Schomburg
  • 2,494
  • 1
  • 18
  • 46

1 Answers1

2
SELECT Identifier,
        SUM(CASE WHEN TYPE = 'aa' THEN VALUE ELSE 0 END) AS typeAASum,
        SUM(CASE WHEN TYPE = 'bb' THEN VALUE ELSE 0 END) AS typeBBSum,
        SUM(CASE WHEN TYPE = 'cc' THEN VALUE ELSE 0 END) AS typeCCSum
FROM YourTable
GROUP BY Identifier
Barmar
  • 741,623
  • 53
  • 500
  • 612