Prova att beställa efter beställningsdatum, så ser du resultatet lättare
select Row_Number() over(partition by orderdate order by orderdate asc)
as Rownumber, salesorderid, orderdate
from test2
order by orderdate;
borde ge (jag har lagt till tomma rader för tydlighetens skull)
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
Du kommer att märka att resultatet är uppdelat i "partitioner", där varje partition är uppsättningen rader med identiska orderdatum. Det är vad "partitionera efter orderdatum" betyder.
Inom en partition är raderna ordnade efter orderdatum, enligt den andra satsen i "(partition by orderdate order by orderdate asc)". Det är inte särskilt användbart, eftersom alla rader inom en partition kommer att ha samma orderdatum. På grund av det är ordningen av raderna inom en partition slumpmässig. Försök att beställa efter försäljningsorderid inom partition by-klausulen för att få ett mer reproducerbart resultat.
row_number() returnerar bara radens ordning inom varje partition