मेरे पास माइक्रोसॉफ्ट एसक्यूएल सर्वर 2008 आर 2 पर डेटा को तीन गैर-नलबल पूर्णांक फ़ील्ड: आईडी, अनुक्रम, और मान के साथ डेटा कहा जाता है। एक ही आईडी के साथ अनुक्रम मूल्य लगातार जारी रहेगा, लेकिन किसी भी मूल्य से शुरू हो सकता है। मुझे एक प्रश्न की आवश्यकता है जो एक ही आईडी और वैल्यू के साथ लगातार पंक्तियों की गिनती वापस कर देगी।COUNT कॉन्सेक्टीव पंक्तियों द्वारा SQL सर्वर समूह केवल
ID Sequence Value
-- -------- -----
1 1 1
5 1 100
5 2 200
5 3 200
5 4 100
10 10 10
मैं निम्नलिखित परिणाम चाहते हैं:
ID Start Value Count
-- ----- ----- -----
1 1 1 1
5 1 100 1
5 2 200 2
5 4 100 1
10 10 10 1
मैंने कोशिश की
SELECT ID, MIN([Sequence]) AS Start, Value, COUNT(*) AS [Count]
FROM DATA
GROUP BY ID, Value
ORDER BY ID, Start
लेकिन वह
देताउदाहरण के लिए, मान लीजिए कि मैं निम्न डेटा डालते हैं
ID Start Value Count
-- ----- ----- -----
1 1 1 1
5 1 100 2
5 2 200 2
10 10 10 1
जो सभी पंक्तियों को समान मूल्यों के साथ समूहित करता है, न केवल लगातार पंक्तियों।
कोई विचार? मैंने जो देखा है, उससे मेरा मानना है कि मुझे ROW_NUMBER() का उपयोग करके लगातार पंक्तियों पर तालिका में शामिल होना है, लेकिन मुझे यकीन नहीं है कि इससे कैसे गणना की जा सकती है।
अग्रिम धन्यवाद।
देखो [अंतराल और द्वीप] (http://stackoverflow.com/questions/tagged/gaps-and-islands) –