बुरा विषय के लिए क्षमा करें, लेकिन मुझे यकीन है कि क्या यह कॉल करने के लिए नहीं था ..T-SQL में योग चल रहा है
मैं एक मेज यह की तरह लग रही है:
+-----++-----+
| Id ||Count|
+-----++-----+
| 1 || 1 |
+-----++-----+
| 2 || 5 |
+-----++-----+
| 3 || 8 |
+-----++-----+
| 4 || 3 |
+-----++-----+
| 5 || 6 |
+-----++-----+
| 6 || 8 |
+-----++-----+
| 7 || 3 |
+-----++-----+
| 8 || 1 |
+-----++-----+
मैं बनाने के लिए कोशिश कर रहा हूँ इस तालिका से एक चयन जहां हर बार पंक्ति 1 + पंक्ति 2 + पंक्ति 3 (आदि) का एसयूएम 10 तक पहुंचता है, तो यह एक "एचआईटी" होता है, और गिनती फिर से शुरू होती है।
अनुरोध किया उत्पादन:
+-----++-----++-----+
| Id ||Count|| HIT |
+-----++-----++-----+
| 1 || 1 || N | Count = 1
+-----++-----++-----+
| 2 || 5 || N | Count = 6
+-----++-----++-----+
| 3 || 8 || Y | Count = 14 (over 10)
+-----++-----++-----+
| 4 || 3 || N | Count = 3
+-----++-----++-----+
| 5 || 6 || N | Count = 9
+-----++-----++-----+
| 6 || 8 || Y | Count = 17 (over 10..)
+-----++-----++-----+
| 7 || 3 || N | Count = 3
+-----++-----++-----+
| 8 || 1 || N | Count = 4
+-----++-----++-----+
मैं यह करने के लिए कैसे करते हैं, और सबसे अच्छा प्रदर्शन के साथ? मुझे पता नहीं है ..
[यहां देखें] (http://stackoverflow.com/a/31497897/3094533) के साथ टैग की गई प्रत्येक पंक्ति की आवश्यकता नहीं है। –
dense_rank() का उपयोग करने के बारे में दिलचस्प विचार। शायद यह काम करेगा। अन्यथा मुझे एक कर्सर के साथ एक संग्रहित proc से डर है शायद इसकी आवश्यकता है। –
यदि 'dense_rank()' चाल नहीं करता है, तो आप इसे एक पुनरावर्ती दृश्य के साथ भी कर सकते हैं। मेरा मानना है कि 'dense_rank()' मार्ग बेहतर अनुकूलित किया जाएगा हालांकि। – JNevill