select (select sum(points)
from points a
where a.userid=userinfo.id
and userinfo.type='customer') as customerpoints
,*
from users userinfo
left outer join points pd on pd.userid=userinfo.id
where type='customer'
and ( SELECT SUM(points)
FROM points a
WHERE a.userid = userinfo.id
AND userinfo.type = 'customer')>0
order by customerpoints asc
,id asc limit 50
我想在上述查询中使用row_number,并在where子句中使用该行号
答案 0 :(得分:0)
在没有看到源数据样本的情况下,很难跟踪困扰您的错误。 以下示例演示了按两列进行排序:
select x.*
from (values ('Leo', 6), ('Mickey', 5), ('Don', 7), ('Raf', 6)) x(name, score)
order by 2,1
返回
name score
Mickey 5
Leo 6
Raf 6
Don 7
您可能会注意到,由于排序字段的不同,“ Don”在得分最低的列表的底部,尽管按字母顺序他必须在得分的顶部,而“ Leo”和“ Raf”的得分却是相同的按字母顺序排序。