2016-12-20 5 views
0

i haben die Struktur folgende Tabelle:Wie Gruppen von Zeilen zu Spalten transponieren

NAME SUBJECT LEVEL  RESULT 
Smith maths beginner C 
Miller maths pro  B 
Prince maths beginner F 
Smith physics pro  B 
Miller physics pro  B 
Prince physics beginner E 

Und ich möchte eine Art von Transponieren, so dass das Ergebnis wie folgt aussehen würde:

NAME LEVEL_maths RESULT_maths LEVEL_physics RESULT_physics 
Smith beginner  C    pro    B 
Miller pro   B    pro    B 
... 

Beliebig Idee, wie dies mit (Postgre) SQL gemacht werden kann? Jeder Hinweis wird geschätzt.

Antwort

0

versuchen Sie dies:

select name, 
max(case when subject='maths' then level else end)level_maths, 
max(case when subject='maths' then RESULT else end)RESULT_maths, 
max(case when subject='physics' then level else end)level_physics, 
max(case when subject='physics' then RESULT else end)RESULT_physics 
from test 
group by name; 
+0

Vielen Dank Bhavesh, das war schnell. Und genau nach was ich gesucht habe. – Prefect73

Verwandte Themen