MySQL找到每个类别的用户等级

斯拉维克

假设我有下表:

 user_id | category_id | points
 -------------------------------
       1 |           1 | 4
       2 |           1 | 2
       2 |           1 | 5
       1 |           2 | 3
       2 |           2 | 2
       1 |           3 | 1
       2 |           3 | 4
       1 |           3 | 8

有人可以帮我构造一个查询来返回每个类别的用户排名-像这样:

user_id | category_id | total_points | rank
-------------------------------------------
      1 |           1 |            4 |    2
      1 |           2 |            3 |    1
      1 |           3 |            9 |    1
      2 |           1 |            7 |    1
      2 |           2 |            2 |    2
      2 |           3 |            4 |    2
戈登·利诺夫

首先,您需要获取每个类别的总积分。然后,您需要枚举它们。在MySQL中,最容易使用变量完成此操作:

SELECT user_id, category_id, points,
       (@rn := if(@cat = category_id, @rn + 1,
                  if(@cat := category_id, 1, 1)
                 )
       ) as rank
FROM (SELECT u.user_id, u.category_id, SUM(u.points) as points
      FROM users u
      GROUP BY u.user_id, u.category_id
     ) g cross join
     (SELEct @user := -1, @cat := -1, @rn := 0) vars
ORDER BY category_id, points desc;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取MySQL表中每个类别的行数

来自分类Dev

获取MySQL表中每个类别的行数

来自分类Dev

在SQL中找到每个类别和子类别的最大日期

来自分类Dev

计算每个类别的帖子

来自分类Dev

计算每个类别的帖子

来自分类Dev

每个类别的mysql总和和计数附加到匹配的类别行

来自分类Dev

用户与类别的关系 OctoberCMS

来自分类Dev

大熊猫:如何找到一列中每个类别的最大n值

来自分类Dev

删除记录(每个用户的最大类别ID除外)-MySQL

来自分类Dev

获取用户等级(mySQL)

来自分类Dev

如何找到选定类别的总结果?

来自分类Dev

mongodb计算每个类别的文档数

来自分类Dev

计算每个类别的列发生次数

来自分类Dev

SQL获取每个类别的计数

来自分类Dev

滑轨显示每个类别的内容

来自分类Dev

cakephp:如何显示每个类别的计数?

来自分类Dev

如何获得每个类别的计数

来自分类Dev

返回每个类别的中间值

来自分类Dev

如何显示每个类别的提示?

来自分类Dev

获取每个类别的每月价格?

来自分类Dev

每个类别的data- *值

来自分类Dev

SQL获取每个类别的计数

来自分类Dev

mongodb计算每个类别的文档数

来自分类Dev

列,显示每个类别的sum()

来自分类Dev

EXCEL-每个类别的CountIF

来自分类Dev

计算每个类别的天数总和

来自分类Dev

在 MYSQL 中显示过去六个月每个类别的总费用

来自分类Dev

从子类别中找到子类别的孩子

来自分类Dev

从子类别中找到子子类别的子代