sql取定量数据的问题,急急急,在线等结果请高手们指定
我现在有这么一个需求,
数据库中原始记录
用户id 积分
1 10
1 20
1 30
1 80
2 10
2 30
3 50
3 60
3 70
3 80
但是只显示给用户
用户id 积分
1 10
1 20
1 30
2 10
2 30
3 50
3 60
3 70
也就是说原始数据按“用户id”来区分,大与3条的只显示3条(显示哪3条随便),小与3条的就全部显示。
------解决方案--------------------select 用户id,积分 from (select 用户id,积分,rank() over(partition by 用户id order by rowid) r from table1 ) where r <=3;
------解决方案--------------------不要用rank()
要用row_number()