在MS SQL中由具有重复值的多个列进行分区
例如,我在一个表中有两列在MS SQL中由具有重复值的多个列进行分区,sql,sql-server,Sql,Sql Server,例如,我在一个表中有两列 **Fruit Color** Mango Yellow Mango Yellow Apple Red Apple Red 预期产量 **Rank Fruit Color** 1 Mango Yellow 1 Mango Yellow 2 Apple Red 2 Apple Red 尝试了Row_number(),但似乎没有产生预期的输出。也尝试了Rank()和Dense_Rank(),但没有得到预期的结果 SELECT ROW_NUMBER
**Fruit Color**
Mango Yellow
Mango Yellow
Apple Red
Apple Red
预期产量
**Rank Fruit Color**
1 Mango Yellow
1 Mango Yellow
2 Apple Red
2 Apple Red
尝试了Row_number(),但似乎没有产生预期的输出。也尝试了Rank()和Dense_Rank(),但没有得到预期的结果
SELECT ROW_NUMBER() OVER (PARTITION BY Fruit,Color order by Fruit) , Fruit,Color
from #temp
ORDER BY FRUIT
rwno Fruit Color
1 Apple Red
2 Apple Red
1 Mango Yellow
2 Mango Yellow
您需要densite\u rank()
和分区:
SELECT DENSE_RANK() OVER (ORDER BY Fruit, Color), Fruit, Color
from #temp
ORDER BY FRUIT
您需要densite\u rank()
和分区:
SELECT DENSE_RANK() OVER (ORDER BY Fruit, Color), Fruit, Color
from #temp
ORDER BY FRUIT
作品谢谢,很好!非常感谢。