Här är ett exempelskript som använder vanligt tabelluttryck:
with recursive sumthis(id, val) as (
select id, value
from example
where id = :selectedid
union all
select C.id, C.value
from sumthis P
inner join example C on P.id = C.parentid
)
select sum(val) from sumthis
Skriptet ovan skapar en 'virtuell' tabell som heter sumthis som har kolumner id och val . Det definieras som resultatet av två val sammanslagna med union all .
Första select hämtar roten (where id = :selectedid ).
Andra select följer de tidigare resultaten iterativt tills det inte finns något att returnera.
Slutresultatet kan sedan bearbetas som en vanlig tabell. I detta fall summeras valkolumnen.