PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

jumlah hierarkis di PostgreSQL

Di PostgreSQL Anda dapat menggunakan CTE (Common Table Expression) rekursif untuk berjalan di pohon dalam kueri Anda.

Berikut adalah dua tautan yang relevan ke dalam dokumen:

EDIT

Karena tidak ada subselect yang diperlukan, ini mungkin berjalan sedikit lebih baik pada kumpulan data yang lebih besar daripada kueri Arion.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memperbaiki skrip Automated Backup untuk postgres [Window]?

  2. Bagaimana cara menampilkan fungsi, prosedur, kode sumber pemicu di postgresql?

  3. Lancar NHibernate dan PostgreSQL, SchemaMetadataUpdater.QuoteTableAndColumns - System.NotSupportedException:Metode yang ditentukan tidak didukung

  4. Bagaimana cara mengembalikan json dari pengontrol Play Scala?

  5. Mulai ulang Heroku Postgres Dev DB