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

चयन / समूह द्वारा - एक मूल्य का क्रम

MySQL में विश्लेषणात्मक कार्यों की कमी के कारण थोड़ा जटिल संस्करण; मैं मान रहा हूँ कि यह SUM है का val1 आपको चाहिए;

SELECT SUM(val1) val1, MAX(val2) val2
FROM (
  SELECT s1.val1, COUNT(s3.val1) grouping, s1.val2 val2
  FROM sequence s1
  LEFT JOIN sequence s2 ON s1.val1 >= s2.val1
  LEFT JOIN sequence s3 ON s3.val1 = s2.val1 - 1 AND s2.val2 <> s3.val2
  GROUP BY s1.val1
) a
GROUP BY grouping
ORDER BY grouping

परीक्षण के लिए एक SQLfiddle

अगर आप grouping जोड़ते हैं आदेश को स्पष्ट करने के लिए चयन सूची में, आपको मिलता है

val1    val2    grouping
15      1       0
40      2       1
65      1       2


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. विभाजित दिनांक संबंधित सप्ताहों में होती है

  2. स्प्रिंग डेटा क्वेरी काम नहीं कर रही है जब क्वेरी पैरामीटर एक इकाई है

  3. मुद्रा मूल्यों के लिए ऑर्डर करें

  4. MySQL और PHP:सिरिलिक वर्णों के साथ UTF-8

  5. MySQL ट्रिगर में किसी अन्य मान के लिए एक नल की तुलना करना