mysql - 在 MySql 中使用查询查找排名
问题描述
我知道之前也有人问过这个问题,但我尝试了所有这些问题,但没有人适合我,因为我的查询有点不同,因为它在查询中具有求和函数,需要得到总和,并以总和为基数来获得排名的用户。
所以我的问题是如何找到单个用户的排名我的表是这样的:
目前我正在尝试使用此查询,但这给了我所有用户。
SELECT u.user_name as userName
, sum(taken_quiz_points) as totalPoints
FROM taken_quiz as q
, users_app as u
WHERE q.taken_quiz_user_id = u.user_id
GROUP
BY taken_quiz_user_id
ORDER
BY totalPoints DESC
解决方案
首先,当您从多个表中查询数据时,您应该使用 INNER JOIN。另外,我认为不可能 ORDER BY 别名,您必须重复别名的操作。如果您想获得单个用户的排名,则必须添加 WHERE 条件,例如WHERE u.name = "toto"
或其他内容。
你应该最终得到这个:
SELECT
u.user_name as userName ,
sum(q.taken_quiz_points) as totalPoints
FROM taken_quiz q
INNER JOIN users_app u ON q.taken_quiz_user_id = u.user_id
WHERE u.name = "toto"
GROUP BY q.taken_quiz_user_id
ORDER BY sum(q.taken_quiz_points) DESC
推荐阅读
- c# - System.TypeLoadException:“OpenQA.Selenium.Appium.Service.AppiumCommandExecutor”类型中的方法“Dispose”
- python - 为 keras 模型编写和测试自定义损失或度量函数
- c - syslog 未在 Debian Jessie 上使用 local0 和优先级进行记录
- javascript - 如何用他的名字调用一个函数作为一个字符串?
- sql - 在 PostgreSQL 中计算时间间隔
- python - 单元测试文件夹的好地方:在源代码文件夹中,在它之外,还是......?
- sql - SQL 新手 - 如何比较两组连接表中的数据
- html - 如何在 HTML 中创建 3 列
- javascript - 使用 husky 对 json 文件预提交进行排序
- python - django.apps:当我在 get_models() 上循环时,模板渲染期间出现错误