table
id user cost
1 A 10
2 B 5
3 B 7
4 A 11
5 C 9
查询出每个user cost最多的id,cost
考虑业务请求频繁(频繁的时候1分钟几百几千次),表大小100w左右
这种情况怎么解决,是仅仅用sql;
还是可以查出全部(其实是分段拿10个user,每个user大概也是10条左右的记录)然后用代码处理
...全文
6558打赏收藏
开发的时候遇到一个分组取数据的问题。求大神解答
table id user cost 1 A 10 2 B 5 3 B 7 4 A 11 5 C 9 查询出每个user cost最多的id,cost 考虑业务请求频繁(频繁的时候1分钟几百几千次),表大小100w左右 这种情况怎么解决,是仅仅用sql; 还是可以查出全部(其实是分段拿10个user,每个user大概也是10条左右的记录)然后用代码处理
假如是oracle:
select * from (
select id, user, cost, rank() over(partition by user order by cost desc) as mm from table where user in('a', 'b')
) where mm= 1