2013-08-17 6 views
0

J'essaie de sélectionner la somme de quelques valeurs avec une limite de 2. J'en ai vu quelques exemples (9877872) mais je n'ai pas réussi à le faire fonctionner. JeMySQL sélectionnez SUM avec LIMIT AND WHERE

SELECT SUM(points) 
FROM 
(SELECT points FROM user_table 
WHERE city=1 AND group =5) 
AS min_points ORDER BY points DESC LIMIT 2 

Cependant, la clause de limite à la fin de la requête ne semble pas être exécuté et je reçois la somme de tous les utilisateurs de la table ...

Est-ce que quelqu'un sait ce que je fais mal ...?

+0

Il est pas très clair ce résultat que vous attendez. La sous-requête renvoie une liste du nombre de points des utilisateurs de ville 1 et de groupe 5. La requête externe simpy calcule la somme. Vous obtenez ainsi le total des points de tous les utilisateurs avec city = 1 et group = 5. –

+0

La somme ne renvoie qu'une seule ligne, car la requête manque une instruction group by. Votre question n'est pas claire sur ce que vous voulez regrouper. S'il vous plaît clarifier votre question. –

Répondre

2

Essayez cette

SELECT SUM(points) 
FROM 
(SELECT points FROM user_table 
WHERE city=1 AND group =5 ORDER BY points DESC LIMIT 2) AS t1 
+0

J'ai aussi essayé ceci mais obtenez l'erreur suivante _mysql_exceptions.OperationalError: (1248, 'Chaque table dérivée doit avoir son propre alias') – Jim

+0

@Jim plz vérifier j'ai mis à jour ma réponse – iJade

+0

merci, cela fonctionne parfaitement :-) – Jim