Henry Caballero
Henry Caballero

Reputation: 55

Turning columns into rows (ORACLE)

I am trying to convert my query columns in rows. This is my query:

select sum(CASE WHEN 
                     t.price < 5000
                THEN t.price END) AS RANGE1,
       sum(CASE WHEN 
                     t.price between 5000 and 10000 
                THEN t.price END) AS RANGE2,
       sum(CASE WHEN 
                     t.price > 10000
                THEN t.price END) AS RANGE3
From
      cars t
Where
      t.status = 3 

The result is like this:

RANGE1   RANGE2    RANGE3
-------  -------  --------
50000     75000      84000

I want the result is as follows:

RANGE    TOTAL    
------- -------  
RANGE1   50000    
RANGE2   75000      
RANGE3   84000

Upvotes: 1

Views: 153

Answers (1)

Praveen
Praveen

Reputation: 9345

Try:

select 
        'RANGE1' RANGE,
        sum(CASE WHEN 
                     t.price < 5000
                THEN t.price END) AS total
From
      cars t
Where
      t.status = 3 

union all

select 
        'RANGE2' RANGE,
       sum(CASE WHEN 
                     t.price between 5000 and 10000 
                THEN t.price END) AS total
From
      cars t
Where
      t.status = 3 

union all

select  
        'RANGE3' RANGE,
       sum(CASE WHEN 
                     t.price > 10000
                THEN t.price END) AS total
From
      cars t
Where
      t.status = 3 

Upvotes: 2

Related Questions