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
अगर आप grouping
जोड़ते हैं आदेश को स्पष्ट करने के लिए चयन सूची में, आपको मिलता है
val1 val2 grouping
15 1 0
40 2 1
65 1 2