MySQL GROUP BY和SUM排名

朦胧的女孩

我有一些表的点表:

| user_id | points |
--------------------
|   1     |   10   |
|   5     |   10   |
|   5     |   50   |
|   3     |   15   |
|   3     |   10   |

我想获得每个使用MySQL的用户的排名。

我已经看过这篇文章,MySQL在ORDER BY中获得行位置,但其中没有SUM,因此无法与SUM一起使用。

我希望能够获得给定user_id的等级。

在此先感谢您的帮助!

莫斯塔乔桥

提醒OP的问题:

我希望能够获得给定user_id的等级。

为了实际在上执行操作,@rank您必须使用另一个派生表(是的,效率低下,因此最好不要在MySQL中处理此表):

SELECT * FROM (
  SELECT s.*, @rank := @rank + 1 rank FROM (
    SELECT user_id, sum(points) TotalPoints FROM t
    GROUP BY user_id
  ) s, (SELECT @rank := 0) init
  ORDER BY TotalPoints DESC
) r
WHERE user_id = 3

输出量

| USER_ID | TOTALPOINTS | RANK |
|---------|-------------|------|
|       3 |          25 |    2 |

该过程基本上是:

  1. 获取每个用户的总积分
  2. 按总分排序
  3. 获得等级后进行过滤(否则,等级会受到损害)

在这里摆弄

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用GROUP BY和DISTINCT的MySQL条件SUM

来自分类Dev

来自AS列的MySQL SUM和GROUP BY

来自分类Dev

MYSQL复杂GROUP BY和SUM查询失败

来自分类Dev

MySQL:当count = sum和group by时选择

来自分类Dev

MySQL ranking with GROUP BY and SUM

来自分类Dev

MySQL GROUP BY和SELECT GROUP BY

来自分类Dev

PHP 和 MySQL 排名

来自分类Dev

MySQL:计算if和Group By

来自分类Dev

MySQL COUNT和GROUP BY

来自分类Dev

MySQL ORDER BY 和 GROUP BY

来自分类Dev

MYSQL查询以获取Group BY中的SUM和LAST记录值

来自分类Dev

MySQL-使用GROUP BY和SUM将两列相乘

来自分类Dev

`使用SUM和GROUP BY将mySQL查询转换为SQLite

来自分类Dev

Mysql 连接两个表 sum, where 和 group by

来自分类Dev

JOIN, GROUP BY, SUM 问题 Mysql

来自分类Dev

mysql sum, CASE WHEN with GROUP BY

来自分类Dev

MySQL更新排名和关系

来自分类Dev

MySQL的排名和减法计数

来自分类Dev

MySQL嵌套查询和GROUP BY

来自分类Dev

MYSQL GROUP BY和WHERE子句

来自分类Dev

Mysql加入group by和order by

来自分类Dev

MySQL更新与GROUP和ORDER

来自分类Dev

MySQL查询GROUP BY和ORDER by

来自分类Dev

组合group by和count mysql

来自分类Dev

MySQL SUM 在虚拟子查询字段(带有另一个 SUM)和 GROUP BY

来自分类Dev

在同一个 Mysql 查询中的 MySql GROUP BY 和 SUM() 中

来自分类Dev

MySQL SUM不适用于GROUP BY

来自分类Dev

MySQL:SUM / MAX / MIN GROUP BY查询优化

来自分类Dev

MySQL SUM by字段然后GROUP BY用户?