sql >> Databasteknik >  >> RDS >> PostgreSQL

Är det möjligt att göra en rekursiv SQL-fråga?

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.



  1. Hur skapar man histogram i MySQL?

  2. viloläge med c3p0:createClob() är ännu inte implementerat

  3. Snabbtips – Snabba upp en långsam återställning från transaktionsloggen

  4. Spara byte[] i en SQL Server-databas från C#