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

रिश्तों की गिनती के आधार पर परिणाम कैसे समूहित करें

मेरे पास आपका नमूना डेटा नहीं है, लेकिन मैंने यहां केवल एक तालिका के साथ परिदृश्य को फिर से बनाया है: डेमो

आप LEFT JOIN generate_series() . के साथ मायने रखता है और n . की गुम गिनती के लिए शून्य प्राप्त करें सदस्यता। यदि आप शून्य नहीं चाहते हैं, तो बस दूसरी क्वेरी का उपयोग करें।

क्वेरी1

WITH c
AS (
    SELECT profile_id
        ,count(*) ct
    FROM Table1
    GROUP BY profile_id
    )
    ,m
AS (
    SELECT MAX(ct) AS max_ct
    FROM c
    )
SELECT n
    ,COUNT(c.profile_id)
FROM m
CROSS JOIN generate_series(1, m.max_ct) AS i(n)
LEFT JOIN c ON c.ct = i.n
GROUP BY n
ORDER BY n;

क्वेरी2

WITH c
AS (
    SELECT profile_id
        ,count(*) ct
    FROM Table1
    GROUP BY profile_id
    )
SELECT ct
      ,COUNT(*)
 FROM c 
GROUP BY ct
ORDER BY ct;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बाहर से एक डॉकटर कंटेनर में Postgresql से कनेक्ट करना

  2. सशर्त तर्क का उपयोग करना:जांचें कि रिकॉर्ड मौजूद है या नहीं; यदि ऐसा होता है, तो इसे अपडेट करें, यदि नहीं, तो इसे बनाएं

  3. PostgreSQL 9.0 और 9.1 . के बीच एनम प्रकार के शाब्दिक क्रम में अंतर

  4. INSERT में अस्पष्ट कॉलम संदर्भ ... संघर्ष पर अद्यतन करें

  5. अद्वितीय जोड़ियों की सूची के आधार पर डेटाबेस से चयन करना