sql >> Database teknologi >  >> RDS >> PostgreSQL

hierarkisk sum i PostgreSQL

I PostgreSQL kan du bruge rekursive CTE'er (Common Table Expression) til at gå i træer i dine forespørgsler.

Her er to relevante links til dokumenterne:

REDIGER

Da der ikke er behov for undervalg, kører det muligvis lidt bedre på et større datasæt end Arions forespørgsel.

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. sql/mysql-filter, der kun inkluderer den maksimale værdi

  2. Tabeller, hvis eneste formål er at angive en delmængde af en anden tabel

  3. PHP OOP MySQL programmering

  4. Hvordan spooler jeg til en CSV-formateret fil ved hjælp af SQLPLUS?