Sql server Sql:Aggregate函数:如何获取示例中给出的表的行号列
我有一个如下生成的临时表Sql server Sql:Aggregate函数:如何获取示例中给出的表的行号列,sql-server,Sql Server,我有一个如下生成的临时表 CarName CarNumber Count DiscountedPrice Ford C296A23E1 3 5715.13 Ford C296A23E2 3 5715.13 Ford C296A23E3 3 5715.13 BMW 311426001 5 1999 BMW 311426002 5 1999 BMW 311426003
CarName CarNumber Count DiscountedPrice
Ford C296A23E1 3 5715.13
Ford C296A23E2 3 5715.13
Ford C296A23E3 3 5715.13
BMW 311426001 5 1999
BMW 311426002 5 1999
BMW 311426003 5 1999
BMW 311426004 5 1999
BMW 311426005 5 1999
Honda 426000021 4 0
Honda 426000022 4 0
Honda 426000023 4 0
Honda 426000024 4 0
上表是由于查询的表很少
我想在这个临时表中增加一列(Rown编号),如下所示
RowNumber CarName CarNumber Count DiscountedPrice
1 Ford C296A23E1 3 5715.13
1 Ford C296A23E2 3 5715.13
1 Ford C296A23E3 3 5715.13
2 BMW 311426001 5 1999
2 BMW 311426002 5 1999
2 BMW 311426003 5 1999
2 BMW 311426004 5 1999
2 BMW 311426005 5 1999
3 Honda 426000021 4 0
3 Honda 426000022 4 0
3 Honda 426000023 4 0
3 Honda 426000024 4 0
基本上,我不希望只需要行数,我可以使用row_number()函数获得行数,但我希望CarName不需要,并且对于属于特定汽车的所有行都要重复
知道怎么做吗?使用密集等级:
DENSE_RANK() over(order by Carname)
使用
密集等级
。以下示例按字母顺序对制造商进行排序:
SELECT *, RowNumber = DENSE_RANK() OVER (ORDER BY CarName)
FROM table_name
只需使用dense_rank()?这就是新手和专家之间的区别:)今天早上我就开始想入非非了。