Опитайте да поръчате по дата на поръчката, ще видите резултатите по-лесно
select Row_Number() over(partition by orderdate order by orderdate asc)
as Rownumber, salesorderid, orderdate
from test2
order by orderdate;
трябва да даде (добавих празни редове за яснота)
ROWNUMBER SALESORDERID ORDERDATE
1 43664 07/01/2001
1 43911 08/01/2001
2 43867 08/01/2001
3 43895 08/01/2001
4 43894 08/01/2001
5 43877 08/01/2001
1 44109 09/01/2001
1 44285 10/01/2001
1 44483 11/01/2001
2 44501 11/01/2001
Ще забележите, че резултатът е разделен на „дялове“, като всеки дял е набор от редове с идентични подредени дати. Това означава „разделяне по дата на поръчка“.
В рамките на дял редовете са подредени по дата на поръчка, съгласно втората клауза на „(дял по дата на поръчка ред по дата на поръчка възходящ)“. Това не е много полезно, тъй като всички редове в дял ще имат една и съща дата на поръчка. Поради това подреждането на редовете в дял е произволно. Опитайте да поръчате по salesorderid в раздела по клауза, за да получите по-възпроизводим резултат.
row_number() просто връща подреждането на реда във всеки дял