首页 > 解决方案 > SQL 获取表中收入最高的前 50 名排行榜

问题描述

所以,我真的不知道如何在 SQL 中做到这一点,所以这就是我现在在这里的原因。所以,我有一个网站,人们可以在其中赚取积分,所有内容都记录在一个名为earnings. 表结构为id (uniue), uid, username, amount。我想创建一个“最多积分”的学习板,我想在其中获得总积分和用户名。我怎样才能在 SQL 中做到这一点?

示例:
表:

id | uid | username | amount
------------------------------
1  | 1   | user1    | 5
2  | 1   | user1    | 1
3  | 2   | user2    | 3
4  | 1   | user1    | 4
5  | 2   | user2    | 10

使用 SQL 时,它应该给出如下结果:

user2 | 13
user1 | 10

但是然后这个表有 1500 行,进入前 50 名。我什至不知道这是否可能,我希望它是。

感谢阅读/帮助!

标签: mysqlsql

解决方案


您可以尝试使用 limit 50 和 group by 来汇总结果

select username, sum(amount) 
from my_table 
group by username
order by sum(amount) DESC 
limit 50 

推荐阅读