PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

क्वेरी द्वारा समूह पोस्टग्रेज करें

अपनी पुनरावर्ती क्वेरी के लिए, आप 0-गद्देदार स्ट्रिंग्स के साथ इस ट्रिक का उपयोग करके एक पदानुक्रमित पथ बना सकते हैं:एसक्यूएल फिडल

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;

ग्रुप बाय छोड़ें। आप उन्हें प्रदर्शन के लिए "समूह" करना चाहते हैं, जो वास्तव में "ऑर्डर बाय" है

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;

आपको अभी भी cl.root_id . की आवश्यकता हो भी सकती है और नहीं भी क्रम में, तो यह हो सकता है

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. IntegrityError:अद्वितीय बाधा और अशक्त उल्लंघनों के बीच अंतर करें

  2. पोस्टग्रेज कनेक्शन पूलिंग - एकाधिक उपयोगकर्ता

  3. 50 मील दूर कैक्यूलेट पॉइंट (उत्तर, 45% पूर्वोत्तर, 45% दप)

  4. Daper.Net और NPGSQL के साथ PostgreSQL jsonb कॉलम में डेटा डालना

  5. PostgreSQL डेटाबेस बनाना