大家好我有一张有user_id和自动递增ID的表
user_id|points|id
3432 |400 |1
3431 |99 |2
3333 |340 |3
4671 |34 |4
9911 |700 |5
3432 |100 |6
3333 |841 |7
我的目标是创建一个sql,它将基于更高的点对user_id进行排序,但考虑到该user_id的最后一个自动递增的Id。我需要我的输出是这样的
user_id|points
3333 |841
9911 |700
3432 |100
3431 |99
4671 |34
但是它只选择user_id及其第一个意思而不是
3432 |100
正在做 3432 | 400
检查下面的MYSQL
SELECT * From points_table where points < 3000 GROUP BY user_id ORDER BY points DESC.
答案 0 :(得分:2)
您只需要最后一条记录,然后对它们进行排序。这是一种方式:
select pt.*
from points_table pt
where pt.id = (select max(pt2.id) from points_table pt2 where pt2.user_id = pt.user_id)
order by pt.points desc;