2010-07-15 48 views
0

我有3個列名爲'測試'的表,即用戶,分數,時間在'時間'是唯一的,用戶,分數以不同的分數重複。像下面這樣用於獲取唯一行的Mysql查詢

user | score | time 
---------------------------- 
535 | 17  | 1279170280 
535 | 1  | 1279170693 
100 | 55  | 1279171361 
100 | 30  | 1279171412 
535 | 2  | 1279173412 
595 | 4  | 1279173539 
595 | 22  | 1279173571 
595 | 50  | 1279173775 

現在我該如何得到高分得分的用戶唯一。請幫助....

回答

1

以下將爲您列出每位用戶的最高分數。

select user, max(score) from table group by user 

如果你想在排名前10位,只需加限制

select user, max(score) from table group by user limit 10 
+0

我得到了解決方案。嘿謝謝你的幫助。 – user392406 2010-07-15 09:40:22

1
SELECT 
    user, 
    max(score) 
FROM 
testing 
GROUP BY 
user 

這應該做到這一點..

1
select * 
from testing join 
    (select max(score) score, user 
     from testing 
     group by user) high using (score, user) 

這應該給你的最高得分,用戶#和那個分數的時間,如果那是你想要的。 如果你不需要的時間,你可以只執行內部查詢

+0

非常感謝................ – user392406 2010-07-15 10:02:31