ne bei der 1 müssen 2 eben darunter sein und bei der 4 und 6 jeweils 1 ebeneDann muß aber die 2 bei 6 und nicht bei 1 sein, oder?
Code:test=*# select * from bauteile ; id | bauteil | vorprodukt ----+---------+------------ 1 | a | 2 | b | 1 3 | c | 1 4 | d | 5 | e | 4 6 | f | 1 7 | g | 6 (7 rows) test=*# select vorprodukt, max(tiefe) from (with recursive r as (select b.id, b.bauteil, b.vorprodukt, 1::int as tiefe from bauteile b where vorprodukt is not NULL union all select b.id, b.bauteil, b.vorprodukt, r.tiefe+1 from bauteile b join r on b.vorprodukt=r.id) select * from r) foo group by vorprodukt; vorprodukt | max ------------+----- 4 | 1 1 | 1 6 | 2 (3 rows)
da ja 7 vorprodukt von 6 ist und 6 von 1 das macht 2 ebenen
und 4 hat ja nur die 5 als vorprodukt -> eine ebene
Zuletzt bearbeitet: