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

Nhóm postgres theo truy vấn

Đối với truy vấn đệ quy của mình, bạn có thể tạo một đường dẫn phân cấp bằng thủ thuật này với chuỗi 0 đệm: SQL Fiddle

with recursive comment_list(article_comment_id, parent_comment_id, comment, article_id, comment_depth, comment_path) AS (
    select c.article_comment_id, 
           c.parent_comment_id, 
           c.comment, 
           c.article_id, 
           c.comment_depth,
           substr(CAST(1000000000+c.article_comment_id as varchar(1000)),2)
    from test_comment c
    where article_id = 100
      and parent_comment_id = 0

  union all

    select c.article_comment_id, 
           c.parent_comment_id, 
           c.comment, 
           c.article_id, 
           c.comment_depth,
           cl.comment_path || substr(CAST(1000000000+c.article_comment_id as varchar(1000)),2)
    from test_comment c
       join comment_list cl on c.parent_comment_id = cl.article_comment_id
)
select cl.article_comment_id,
     cl.comment_path, 
     cl.parent_comment_id,
     cl.comment, 
     cl.article_id,
     cl.comment_depth
from comment_list cl
order by cl.comment_path, cl.article_comment_id, cl.comment_depth;

Bỏ NHÓM THEO. Bạn muốn "nhóm" chúng để hiển thị, thực sự là "ĐẶT HÀNG THEO"

select cl.parent_comment_id, 
     cl.article_comment_id,
     cl.comment, 
     cl.article_id,
     cl.comment_depth
from comment_list cl
order by cl.parent_comment_id, cl.article_comment_id, cl.comment_depth;

Bạn có thể vẫn cần hoặc không cần cl.root_id theo thứ tự, vì vậy nó có thể là

order by cl.root_id, cl.parent_comment_id, cl.article_comment_id, cl.comment_depth;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Heroku Connect với Cakephp v3.0.12

  2. Làm cách nào để tôi có thể thực hiện ít hơn, lớn hơn trong các trường JSON Postgres?

  3. Truy vấn Postgres chậm 9.3

  4. Postgresql gem install pg 0.18.4 vượt qua, cài đặt gói không thành công

  5. Postgresql chỉ định một truy vấn chọn cho biến trong hàm