I aus der folgenden Tabelle gestartet:ROW_NUMBER über Partition und finden Sie den max rn Wert
+---+-----+---------+----------+----------+-------------+
| 1 | ID | OrderNO | PartCode | Quantity | DateEntered |
| 2 | 417 | 2144 | 44917 | 100 | 40773 |
| 3 | 418 | 7235 | 11762 | 5 | 40773 |
| 4 | 419 | 9999 | 60657 | 100 | 40773 |
| 5 | 420 | 9999 | 60657 | 90 | 40774 |
+---+-----+---------+----------+----------+-------------+
dazu:
+---+---------+----------+----------+-------------+----+
| 1 | OrderNO | PartCode | Quantity | DateEntered | rn |
| 2 | 2144 | 44917 | 100 | 40773 | 1 |
| 3 | 7235 | 11762 | 5 | 40773 | 1 |
| 4 | 9999 | 60657 | 100 | 40773 | 1 |
| 5 | 9999 | 60657 | 90 | 40774 | 2 |
+---+---------+----------+----------+-------------+----+
die Abfrage fo diese answer verwenden.
select OrderNO,PartCode,Quantity,row_number() over(partition by OrderNO order by DateEntered desc) as rn
from YourTable) as T
Jetzt versuche ich, ein Feld „rn_max“ hinzufügen, shich ist der max „rn“ jedes OrderNo und erhalten folgendes Ergebnis:
+---+---------+----------+----------+-------------+----+--------+
| 1 | OrderNO | PartCode | Quantity | DateEntered | rn | rn_max |
| 2 | 2144 | 44917 | 100 | 40773 | 1 | 1 |
| 3 | 7235 | 11762 | 5 | 40773 | 1 | 1 |
| 4 | 9999 | 60657 | 100 | 40773 | 1 | 2 |
| 5 | 9999 | 60657 | 90 | 40774 | 2 | 2 |
+---+---------+----------+----------+-------------+----+--------+
ich dieses Ergebnis der Berechnung erhalten könnte max von jeder BestellungNO mit der Abfrage
SELECT OrderNO,MAX(rn) AS 'rn_max'
FROM (
select OrderNO,PartCode,Quantity,row_number() over(partition by OrderNO order by DateEntered desc) as rn
from YourTable
) T
Group by OrderNO
und dann eine linke Verknüpfung von YourTable verwenden. Gibt es einen kürzesten Weg, um die Zeilen mit der gleichen OderNummer zu zählen? Ich habe versucht, row_number() over(partition by OrderNO) as rn_max
bei der Abfrage hinzuzufügen, aber ich muss eine Order-by-Klausel schreiben.
Looks zu erhalten, wie Sie besser dran COUNT verwenden würde (*) OVER (PARTITION BY OrderNo) –