2010-07-15 5 views
0

'time'이 고유하고 user, score가 다른 점수로 반복된다는 점에서 사용자, 점수, 시간이라는 세 개의 열의 'testing'이라는 테이블이 있습니다. like below고유 한 행을 가져 오기위한 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

다음은 각 사용자별로 가장 높은 점수 목록을 제공합니다. 당신이 상위 10를 원하는 경우

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

, 단지 제한 추가

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

해결책이 있습니다. 도움을 주셔서 감사합니다. – user392406

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

관련 문제