Sorry für schlechtes Thema, aber ich war nicht sicher, wie ich es zu nennen ..SUM Lauf in T-SQL
ich eine Tabelle wie folgt aussehen haben:
+-----++-----+
| Id ||Count|
+-----++-----+
| 1 || 1 |
+-----++-----+
| 2 || 5 |
+-----++-----+
| 3 || 8 |
+-----++-----+
| 4 || 3 |
+-----++-----+
| 5 || 6 |
+-----++-----+
| 6 || 8 |
+-----++-----+
| 7 || 3 |
+-----++-----+
| 8 || 1 |
+-----++-----+
Ich versuche zu machen Wählen Sie aus dieser Tabelle, wo jedes Mal, wenn die Summe von Zeile1 + Zeile2 + Zeile3 (usw.) 10 erreicht, dann ist es ein "HIT", und die Zählung beginnt von neuem.
Gewünscht Ausgabe:
+-----++-----++-----+
| 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
+-----++-----++-----+
Wie dies tue ich, und mit dem besten Leistung? Ich habe keine Ahnung ..
[siehe hier] (http://stackoverflow.com/a/31497897/3094533) –
Interessanter Gedanke über die Verwendung von dichtem_rank(). Vielleicht würde das funktionieren. Ansonsten befürchte ich einen gespeicherten Proc mit einem Cursor ist wahrscheinlich was benötigt wird. –
Wenn 'dense_rank()' nicht den Trick macht, könnten Sie dies auch mit einer rekursiven Ansicht tun. Ich glaube, dass 'dose_rank()' Route besser optimiert wäre. – JNevill