sql >> Databasteknik >  >> RDS >> PostgreSQL

hierarkisk summa i PostgreSQL

I PostgreSQL kan du använda rekursiva CTE:er (Common Table Expression) för att gå i träd i dina frågor.

Här är två relevanta länkar till dokumenten:

REDIGERA

Eftersom det inte krävs något underval kan det fungera lite bättre på en större datauppsättning än Arions fråga.

WITH RECURSIVE children AS (
    -- select leaf nodes
    SELECT id, value, parent
        FROM t
        WHERE value IS NOT NULL
    UNION ALL
    -- propagate values of leaf nodes up, adding rows 
    SELECT t.id, children.value, t.parent
        FROM children JOIN t ON children.parent = t.id
)
SELECT id, sum(value) 
    FROM children 
    GROUP BY id   -- sum up appropriate rows
    ORDER BY id;


  1. hur man får en lista över databaser Schema namn på MySql med java JDBC

  2. Oracle 11g:Standard till statiskt värde när frågan inte returnerar något

  3. ORA-00907:höger parentes saknas

  4. SQL:Är det möjligt att 'gruppera efter' enligt 'gilla'-funktionens resultat?