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

एक विभाजन के भीतर लगातार संख्याओं का सबसे बड़ा समूह ढूँढना

आप इसे विंडो फ़ंक्शंस के साथ कर सकते हैं।

select player_id, runs, count(*) as numruns
from (select p.*,
             (row_number() over (partition by player_id order by match_date) -
              row_number() over (partition by player_id, runs order by match_date)
             ) as grp
      from players p
     ) pg
group by grp, player_id, runs
order by numruns desc
limit 1;

मुख्य अवलोकन यह है कि "एक क्रम में चलता है" में यह गुण होता है:यदि आप तिथि के अनुसार पंक्तियों (प्रत्येक खिलाड़ी के लिए) की गणना करते हैं और आप प्रत्येक खिलाड़ी के लिए पंक्तियों की गणना करते हैं और तिथि के अनुसार रनों की गणना करते हैं, तो अंतर स्थिर होता है जब रन सभी समान और क्रम में हैं। यह एक समूह बनाता है जिसका उपयोग आप अपने इच्छित खिलाड़ी की पहचान करने के लिए एकत्रीकरण के लिए कर सकते हैं।

यहां SQL Fiddle है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PgBouncer के साथ PostgreSQL कनेक्शन पूलिंग

  2. C++ के माध्यम से PostgreSQL तक पहुंचें - इंटरफ़ेस (लिंकर त्रुटि)

  3. PostgreSQL में समूहीकृत LIMIT:प्रत्येक समूह के लिए पहली N पंक्तियाँ दिखाएं?

  4. मेरी पोस्टगिस ज्यामिति क्षेत्र पर सूचकांक का उपयोग क्यों नहीं करती है?

  5. रेल से PostgreSQL में स्टोर समय अंतराल