ich eine Abfrage, die für mein Bedürfnis gemacht:Postgresql CASE in der gleichen Zeile setzen
select distinct min(term1_id), term2_id,
case when distance = 0 then term2_id end as dist0,
case when distance = 1 then term2_id end as dist1,
case when distance = 2 then term2_id end as dist2,
case when distance = 3 then term2_id end as dist3,
case when distance = 4 then term2_id end as dist4,
case when distance = 5 then term2_id end as dist5,
case when distance = 6 then term2_id end as dist6,
case when distance = 7 then term2_id end as dist7,
case when distance = 8 then term2_id end as dist8,
case when distance = 9 then term2_id end as dist9,
case when distance = 10 then term2_id end as dist10,
case when distance = 11 then term2_id end as dist11,
case when distance = 12 then term2_id end as dist12,
case when distance = 13 then term2_id end as dist13,
case when distance = 14 then term2_id end as dist14,
case when distance = 15 then term2_id end as dist15
from graph_path
group by term2_id, distance
order by term2_id;
Legen Sie es, die Ergebnisse in „Zeilen“ wie folgt zurück:
Term1_id dist0 dist1 dist2
1 1
1 5
1 118
1 12823
1 40006
1 6
1 7
Wie kann ich alles setzen in einer Reihe so?
Term1_id dist 0 dist1 dist2
1 1 5 6
1 118 7 etc...
Gibt es eine Möglichkeit, es kompakt zu machen? Anstatt für jede dist eine Zeile zu erstellen?
Keine Notwendigkeit für diese DISTINCT, Ihre GROUP BY gibt keine Duplikate. – jarlh