2011-02-23 102 views
0

我有这个MySQL查询名单“投票排名”的“行动”,它工作正常,但我想什么“id_user”不重复,就像在这个领域作出了“DISTINCT”。MySQL查询排名

SELECT 
count(v.id) votos, 
v.id_action, 
a.id_user, 
a.id_user_to, 
a.action, 
a.descripcion 
FROM 
    votes v, 
    actions a 
WHERE 
    v.id_action = a.id 
GROUP BY 
    v.id_action 
ORDER BY 
    votos DESC 

结果:

votes act  id_user 
3  3  745059251 
2  20  1245069513 
2  23  1245069513 
2  26  100000882722297 
2  29  1245069513 
2  44  1040560484 
2  49  1257441644 
2  50  1040560484 

预期的结果

votes act id_user 
3  3 745059251 
2  20 1245069513 
2  26 100000882722297 
2  44 1040560484 
2  49 1257441644 
2  50 1040560484 
+0

您的查询和结果没有匹配的列数。然而,那表示我会将列数减少到需要的数量,并将其他聚合(最小/最大)置于不希望返回多次的列上。 – AgentDBA 2011-02-23 15:31:05

回答

0

如果你不想重复的用户,你应该只group by a.id_user。然后,您必须汇总您的操作,因此您可能需要sum(a.action)count(a.action)来代替a.action。如果不知道“行动”代表什么,很难说出你应该使用什么。