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

MySQL लगातार समान परिणामों के लिए पहला और अंतिम रिकॉर्ड लौटाता है

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

परिणामी क्वेरी है:

select result, min(time_stamp) as start_time, max(time_stamp) as end_time
from (select r.*,
             (@ups := @ups + (result = 'up')) as ups,
             (@downs := @downs + (result = 'down')) as downs
      from results r cross join
           (select @ups := 0, @downs := 0) vars
      where service_id = 1
      order by time_stamp
     ) r
group by result, (case when result = 'up' then downs else ups end);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. उबंटू पर mysql रत्न स्थापित करने में कठिनाइयाँ

  2. एसक्यूएल के साथ गतिशील MySQL प्रश्न तैयार कथन के रूप में सुरक्षित रूप से बच रहे हैं?

  3. प्रत्येक व्यक्तिगत पंक्ति के लिए एकाधिक 'कहां' खंडों के साथ एकाधिक पंक्तियों को अपडेट करें

  4. MySQL में राइट () फंक्शन कैसे काम करता है

  5. MySQL - वर्तमान उपयोगकर्ता को जानने के विभिन्न तरीके