Prøv at bestille efter ordredato, du vil nemmere se resultaterne
select Row_Number() over(partition by orderdate order by orderdate asc)
as Rownumber, salesorderid, orderdate
from test2
order by orderdate;
burde give (jeg har tilføjet tomme linjer for klarhedens skyld)
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 vil bemærke, at resultatet er opdelt i 'partitioner', hvor hver partition er sæt rækker med identiske ordredatoer. Det er, hvad "opdeling efter ordredato" betyder.
Inden for en partition er rækkerne sorteret efter ordredato i henhold til den anden klausul af "(partition efter ordredato orden efter ordredato asc)". Det er ikke særlig nyttigt, da alle rækker i en partition vil have den samme ordredato. På grund af det er rækkefølgen af rækkerne i en partition tilfældig. Prøv at bestille efter salgsordre-id inden for partition by-klausulen for at få et mere reproducerbart resultat.
row_number() returnerer bare rækkens rækkefølge inden for hver partition