Xin lỗi vì chủ đề xấu nhưng tôi không chắc chắn những gì để gọi nó ..Chạy SUM trong T-SQL
Tôi có một bảng tìm kiếm như thế này:
+-----++-----+
| Id ||Count|
+-----++-----+
| 1 || 1 |
+-----++-----+
| 2 || 5 |
+-----++-----+
| 3 || 8 |
+-----++-----+
| 4 || 3 |
+-----++-----+
| 5 || 6 |
+-----++-----+
| 6 || 8 |
+-----++-----+
| 7 || 3 |
+-----++-----+
| 8 || 1 |
+-----++-----+
Tôi đang cố gắng để làm cho một lựa chọn từ bảng này, nơi mỗi khi SUM của row1 + row2 + row3 (etc) đạt đến 10, thì đó là "HIT" và số đếm bắt đầu lại. sản lượng
yêu cầu:
+-----++-----++-----+
| 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
+-----++-----++-----+
Làm thế nào để làm điều này, và với hiệu suất tốt nhất? Tôi không có ý tưởng ..
[xem tại đây] (http://stackoverflow.com/a/31497897/3094533) –
Thú vị nghĩ về việc sử dụng dense_rank(). Có lẽ điều này sẽ làm việc. Nếu không, tôi sợ một proc được lưu trữ với một con trỏ có lẽ là những gì cần thiết. –
Nếu 'dense_rank()' không thực hiện thủ thuật, bạn cũng có thể thực hiện điều này với chế độ xem đệ quy. Tôi tin rằng tuyến đường 'dense_rank() 'sẽ được tối ưu hóa tốt hơn mặc dù. – JNevill