sql >> Databáze >  >> RDS >> PostgreSQL

Je možné vytvořit rekurzivní SQL dotaz?

Zde je příklad skriptu používajícího běžný tabulkový výraz:

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

Výše uvedený skript vytvoří „virtuální“ tabulku s názvem sumthis který má sloupce id a val . Je definován jako výsledek dvou výběrů sloučených s union all .

Nejprve select získá kořen (where id = :selectedid ).

Druhý select iterativně následuje potomky předchozích výsledků, dokud není co vrátit.

Konečný výsledek pak může být zpracován jako normální tabulka. V tomto případě je sloupec val sečten.



  1. Existuje nějaký způsob, jak vložit sestavy a řídicí panely power bi do vb.net nebo C# desktopové aplikace s databází sql server 2008?

  2. Jak odečíst hodiny od datatime v MySQL?

  3. 3 způsoby, jak spočítat počet systémových tabulek v databázi SQL Server

  4. Je dobrým zvykem používat ContentProvider ke zpracování databázových operací?