Sql 如何在查询中对行进行编号

Sql 如何在查询中对行进行编号,sql,row-number,Sql,Row Number,我有一个简单的select语句: 按以下顺序从Product表中获取行编号:中的制造商名称 -当模型数量相同时,it生产的模型数量降序 -对于一些制造商来说,他们的名字应该按照字母顺序递增,型号顺序递增。 -输出:根据上述订单编号、制造商名称、型号 结果应该是- no maker model 1 A 1232 10 E 2112 11 E 2113 12 B 1121 13 B 1750 14 D 1288 15 D 1433 16 C 1

我有一个简单的select语句: 按以下顺序从Product表中获取行编号:中的制造商名称 -当模型数量相同时,it生产的模型数量降序 -对于一些制造商来说,他们的名字应该按照字母顺序递增,型号顺序递增。 -输出:根据上述订单编号、制造商名称、型号

结果应该是-

no  maker   model
1   A   1232
10  E   2112
11  E   2113
12  B   1121
13  B   1750
14  D   1288
15  D   1433
16  C   1321
2   A   1233
3   A   1276
4   A   1298
5   A   1401
6   A   1408
7   A   1752
8   E   1260
9   E   1434
我的问题是:

with result as
(select *, count(*) over (partition by maker) as ModelsCount from Product)   
select row_number() over (order by ModelsCount desc,model) AS No, Maker, Model
from result
我的结果是:

no  maker   model
1   A   1232
10  E   2112
11  E   2113
12  B   1121
13  D   1288
14  D   1433
15  B   1750
16  C   1321
2   A   1233
3   A   1276
4   A   1298
5   A   1401
6   A   1408
7   A   1752
8   E   1260
9   E   1434

您正在使用哪个数据库?根据数据库的不同,有多种解决方案。请尝试订购ModelScont desc,制造商,modeldatabase计算机公司:谢谢您的帮助。解决方案是:在结果为select的情况下,按制造商按产品中的ModelScont对分区进行计数,按ModelScont desc、maker、model as No、maker、model from result对订单选择行数