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

MySQL:लगातार महीनों के साथ रिकॉर्ड की संख्या

आप इसे MySQL में वैरिएबल (या बहुत जटिल सहसंबद्ध उपश्रेणियों) का उपयोग करके कर सकते हैं। अन्य डेटाबेस में, आप विंडो/विश्लेषणात्मक कार्यों का उपयोग करेंगे।

तर्क है:

  1. प्रति माह एक पंक्ति और खरीदारी करने वाला व्यक्ति प्राप्त करें।
  2. लगातार महीनों के प्रत्येक समूह को "समूहीकरण" मान निर्दिष्ट करने के लिए चर का उपयोग करें।
  3. व्यक्ति और "समूहीकरण" मान के आधार पर योग करें।

यहाँ एक क्वेरी है जिसका परीक्षण आपके SQL Fiddle पर किया गया है:

select person, count(*) as numMonths
from (select person, ym, @ym, @person,
             if(@person = person and @ym = ym - 1, @grp, @grp := @grp + 1) as grp,
             @person := person,
             @ym := ym
      from (select distinct person, year(purdate)*12+month(purdate) as ym
            from records r
           ) r cross join
           (select @person := '', @ym := 0, @grp := 0) const
      order by 1, 2
     ) pym
group by person, grp;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MIN/MAX बनाम ORDER BY और LIMIT

  2. वर्ष () उदाहरण – MySQL

  3. MATCH () के खिलाफ () का उपयोग करके स्ट्रिंग और संख्या के लिए MySQL खोज

  4. हर बोली समस्या से पहले स्लैश

  5. MySQL अद्वितीय कॉलम का चयन करें जहां अन्य कॉलम अधिकतम है