Sql 如何在查询中对行进行编号
我有一个简单的select语句: 按以下顺序从Product表中获取行编号:中的制造商名称 -当模型数量相同时,it生产的模型数量降序 -对于一些制造商来说,他们的名字应该按照字母顺序递增,型号顺序递增。 -输出:根据上述订单编号、制造商名称、型号 结果应该是-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
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对订单选择行数