Zkuste objednávat podle data objednávky, výsledky uvidíte snadněji
select Row_Number() over(partition by orderdate order by orderdate asc)
as Rownumber, salesorderid, orderdate
from test2
order by orderdate;
by měl dát (pro přehlednost jsem přidal prázdné řádky)
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
Všimnete si, že výsledek je rozdělen do 'oddílů', přičemž každý oddíl je sada řádků s identickými daty objednávky. To je to, co znamená „rozdělení podle data objednávky“.
V rámci oddílu jsou řádky seřazeny podle data objednávky podle druhé věty „(oddíl podle data objednávky seřazení podle data objednávky asc)“. To není příliš užitečné, protože všechny řádky v oddílu budou mít stejné datum objednávky. Z tohoto důvodu je řazení řádků v oddílu náhodné. Zkuste seřadit podle salesorderid v rámci oddílu podle klauzule, abyste měli reprodukovatelnější výsledek.
row_number() pouze vrací pořadí řádků v rámci každého oddílu