2016-03-31 7 views
0

Wir haben Tabelle mit 3 Spalten METRIC, zählen, SETS und Daten wie folgt aussieht:Wie teilt man Daten von Spalten in mehr als einer Spalte in oracle10g auf?

  "METRIC"   "COUNT" "SETS"   
      FOR_PEOPLE_LIKE_ME  0 SET1 
      FOR_YOUNG_PEOPLE  1 SET1 
      GOOD_TASTE    0 SET1 
      HIGH_SATISFACTION  2 SET1 
      FOR_STATUS_ORIENTED  0 SET1 

      FOR_PEOPLE_LIKE_ME  0 SET2 
      FOR_YOUNG_PEOPLE  1 SET2 
      GOOD_TASTE    0 SET2 
      HIGH_SATISFACTION  0 SET2 
      FOR_STATUS_ORIENTED  3 SET2 

ich die Daten von „SET1“ und „SET2“ .Was Ansatz sollte ich verwenden teilen möchten? Mein gewünschtes Ergebnis ist:

"METRIC"    "SET1" "SET2" 
    FOR_PEOPLE_LIKE_ME  0   0  
    FOR_YOUNG_PEOPLE  1   1 
    GOOD_TASTE    0   0  
    HIGH_SATISFACTION  2   0 
    FOR_STATUS_ORIENTED  0   3 

Antwort

3

Sie sind für ein gefilterte Aggregat suchen:

select metric, 
     sum(case sets when 'SET1' then "COUNT" end) as SET1, 
     sum(case sets when 'SET2' then "COUNT" end) as SET2 
from the_table 
group by metric; 
+0

Ich denke, das entsprechende Aggregat ist 'sum'. –

+0

@DanBracuk: Ja natürlich ist es. Danke –

+0

@a_horse_with_no_name: Danke für die Antwort, und es gibt keine gewünschte Ausgabe, – Shubh