向此T-SQL查询添加行号

Mar*_*o M 19 sql sql-server

如何在此查询结果中添加ROW编号?

SELECT DISTINCT
  VehicleSpecs.SubmittedById,
  COUNT(VehicleSpecs.SubmittedById) AS NumCars,
  aspnet_Users.UserName
FROM
  VehicleSpecs
  INNER JOIN aspnet_Users ON VehicleSpecs.SubmittedById = aspnet_Users.UserId
WHERE
  (LEN(VehicleSpecs.SubmittedById) > 0)
GROUP BY
  VehicleSpecs.SubmittedById,
  aspnet_Users.UserName
ORDER BY
  NumCars DESC
Run Code Online (Sandbox Code Playgroud)

Tom*_*mek 19

加: ROW_NUMBER() OVER (ORDER BY NumCars)

编辑:

WITH    t1 AS 
( SELECT DISTINCT
            VehicleSpecs.SubmittedById ,
            COUNT(VehicleSpecs.SubmittedById) AS NumCars ,
            aspnet_Users.UserName
   FROM     VehicleSpecs
            INNER JOIN aspnet_Users ON VehicleSpecs.SubmittedById = aspnet_Users.UserId
   WHERE    ( LEN(VehicleSpecs.SubmittedById) > 0 )
   GROUP BY VehicleSpecs.SubmittedById ,
            aspnet_Users.UserName
)
SELECT  ROW_NUMBER() OVER ( ORDER BY NumCars ), *
FROM    t1
ORDER BY NumCars
Run Code Online (Sandbox Code Playgroud)


Mik*_*son 19

在子查询中包装整个查询并添加row_number外部查询.

select *, row_number() over(order by (select 0)) as rn
from
  (
    select distinct -- your columns
    from YourTable
  ) as T
order by NumCars desc
Run Code Online (Sandbox Code Playgroud)

  • @MikaelEriksson:谢谢."按0排序"不会做同样的事情吗? (2认同)