2010-07-15 7 views
0

J'ai une table nommée 'testing' de 3 colonnes, c'est-à-dire l'utilisateur, le score, le temps en ce 'temps' est unique et l'utilisateur, le score est répété avec un score différent. comme ci-dessousRequête Mysql pour obtenir des lignes uniques

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 

maintenant comment puis-je obtenir des utilisateurs à score élevé uniquement. S'il vous plaît aider ....

Répondre

1

Ce qui suit vous obtiendrez une liste du score le plus élevé pour chaque utilisateur.

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

Si vous voulez le top 10, juste ajouter limite

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

J'ai obtenu une solution. Salut, merci pour votre aide. – user392406

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

cela devrait le faire ..

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

Cela devrait vous donner le meilleur score, l'utilisateur # et le temps de ce score si c'est ce que tu voulais. Si vous n'avez pas besoin de temps, vous pouvez exécuter uniquement la requête interne

+0

merci beaucoup ................ – user392406

Questions connexes