我在MySQL DB中有表,其中包含两个字段user_id
和score
。此表是一种日志表,因此对于具有不同分数的一个user_id,可以有多行。如何才能从此表中获得得分最高的前10位用户?
答案 0 :(得分:5)
SELECT DISTINCT user_id
FROM your_table
ORDER BY score DESC
LIMIT 10
修改强>
SELECT DISTINCT *
FROM your_table
WHERE (user_id, score) IN (SELECT user_id, MAX(score) AS score
FROM your_table
GROUP BY user_id)
ORDER BY score DESC
LIMIT 10
的 SqlFiddleDemo
强>
答案 1 :(得分:0)
这是基本的,你应该付出更多的努力;这是你可以使用的模板 -
SELECT TOP 10 distinct *
FROM people
WHERE names='SMITH'
ORDER BY names asc