mysql - 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 名。我什至不知道这是否可能,我希望它是。
感谢阅读/帮助!
解决方案
您可以尝试使用 limit 50 和 group by 来汇总结果
select username, sum(amount)
from my_table
group by username
order by sum(amount) DESC
limit 50
推荐阅读
- node.js - nestjs 替换请求正文中的符号
- javascript - 列表中项目的水平对齐
- ios - 核心数据属性验证的现代方法是什么?键值验证仍然是事实上的方法吗?
- java - PEMParser readObject() 在打开 X509 有效证书时失败
- firebase - 从firestore颤振按时间排序数据的问题
- web-applications - 如何重构和改进我完成的 Web 应用程序?
- html - 颤振飞镖get.http响应给出html而不是json api
- docker - 如何从 git repo 挂载/复制文件夹到服务容器?
- r - R中plot_summs函数中的缩放轴
- r - 根据R中的整数周和年获取天数