Lia*_*san 3 sql sql-server ranking dense-rank
我正在尝试根据年和月确定排名。我有类似的记录
产品展示
ProdID Years Months Quantity
--------------------------------
1652 2018 10 2
1010 2018 9 2
2236 2018 10 2
2236 2018 10 2
1445 2019 5 2
1789 2019 12 2
1232 2018 12 2
Run Code Online (Sandbox Code Playgroud)
我尝试了以下查询
SELECT
ProdID, Years, Months, Quantity,
DENSE_RANK()OVER (Partition By Years Order By Months) Ranks
FROM Products
Run Code Online (Sandbox Code Playgroud)
显然,结果将是
ProdID Years Months Quantity Ranks
---------------------------------------
1010 2018 9 2 1
1652 2018 10 2 2
2236 2018 10 2 2
2236 2018 10 2 2
1232 2018 12 2 3
1445 2019 5 2 1
1789 2019 12 2 2
Run Code Online (Sandbox Code Playgroud)
期望
ProdID Years Months Quantity Ranks
---------------------------------------
1010 2018 9 2 1
1652 2018 10 2 2
2236 2018 10 2 2
2236 2018 10 2 2
1232 2018 12 2 3
1232 2018 12 2 3
1445 2019 5 2 4
1789 2019 12 2 5
Run Code Online (Sandbox Code Playgroud)
您需要从查询中删除partition by子句。只需使用order by子句即可。
SELECT ProdID, Years, Months, Quantity,
DENSE_RANK()OVER (Order By Years, Months) Ranks
FROM Products
Run Code Online (Sandbox Code Playgroud)