Berikut adalah contoh skrip menggunakan ekspresi tabel umum:
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
Script di atas membuat tabel 'virtual' bernama sumthis
yang memiliki kolom id
dan val
. Ini didefinisikan sebagai hasil dari dua pilihan yang digabungkan dengan union all
.
select
pertama mendapatkan root (where id = :selectedid
).
select
kedua mengikuti anak-anak dari hasil sebelumnya secara iteratif sampai tidak ada yang kembali.
Hasil akhirnya kemudian dapat diproses seperti tabel biasa. Dalam hal ini kolom val dijumlahkan.