PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Có thể thực hiện truy vấn SQL đệ quy không?

Đây là một tập lệnh ví dụ sử dụng biểu thức bảng phổ biến:

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

Tập lệnh trên tạo một bảng 'ảo' được gọi là sumthis có các cột idval . Nó được định nghĩa là kết quả của hai lựa chọn được hợp nhất với union all .

Đầu tiên select lấy gốc (where id = :selectedid ).

select thứ hai theo dõi lặp đi lặp lại phần con của các kết quả trước đó cho đến khi không có gì để trả về.

Kết quả cuối cùng sau đó có thể được xử lý như một bảng bình thường. Trong trường hợp này, cột val được tính bằng tổng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nâng cấp cột varchar thành kiểu enum trong postgresql

  2. Làm cách nào để thực hiện truy vấn không phân biệt chữ hoa chữ thường trong Postgresql?

  3. Chèn dữ liệu và đặt khóa ngoại với Postgres

  4. GROUP hoặc DISTINCT sau khi JOIN trả về các bản sao

  5. DATEADD tương đương trong PostgreSQL