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

Grup postgres berdasarkan kueri

Untuk kueri rekursif Anda, Anda dapat membuat jalur hierarkis menggunakan trik ini dengan string 0-empuk:Fiddle SQL

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;

Jatuhkan GROUP BY. Anda ingin "mengelompokkan" mereka untuk ditampilkan, yang sebenarnya adalah "ORDER BY"

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;

Anda mungkin atau mungkin tidak masih memerlukan cl.root_id diurutkan berdasarkan, jadi bisa jadi

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. sambungkan ke server postgres di mesin komputasi google

  2. Operasi INSERT menggunakan Node.js dan PostgreSQL tidak berfungsi

  3. Cara mengembalikan id pada Sisipan dengan Ibatis ( dengan kata kunci RETURNING )

  4. postgres dan python

  5. Bagaimana cara Menangkap catatan kesalahan menggunakan JDBCTemplate batchUpdate di postgreSql?