问题补充说明:OVER(order by xxx) 这里的xxx必须是select 中的列名,不能用别名。 如果我select的字段中包含一个子查询如:select a.name as name ,(select sum(b.qty) from b where a.name = b.name) as qty from a group by name。 用以上方式进行分页查询时不能用OVE... OVER(order by xxx) 这里的xxx必须是select 中的列名,不能用别名。 如果我select的字段中包含一个子查询如:select a.name as name ,(select sum(b.qty) from b where a.name = b.name) as qty from a group by name。 用以上方式进行分页查询时不能用OVER(order by qty),只能order by 那段子查询,比较麻烦。请问有解决办法么?(由于使用的框架、需求的限制,语句比较复杂,没法优化) 展开
只能做一个嵌套,按照你的,我建了几个表和查询,你看看,符合你要求不
建表
create table a (id int,name varchar(10));
create table b (
name varchar(10),
qty int);
插入数据
insert into a v另落岩alues (1,'张三')insert into a values (2,'李四')
insert into a values (3,'王五')
insert into a values (4,'赵六')
去皮格干次史害insert into a values (5,'孙七')
insert into b values ('张三',100)
insert into b values ('张三',200)
insert into b values ('李四',500)
insert into b values ('王五',100)
insert into b values ('王五',20绿省犯部劳去少0)
insert into b values ('王五',500)
运行语句
select t.name,t.qty,row_number() ove360问答r (order by t.qty)from
(select a.name,s端部um(b.qty) qty
f天加村格手妒告县曾尼rom a left join b on a.name=查他沙百额b.name group by a.name术) t
结果截图