Mysql与sum明显不同

时间:2011-03-05 06:18:45

标签: mysql sum distinct

我在使用message上的distinct对SUM字节列有问题。基于样本表,我需要得到以下结果:

user1 10(我需要使用substring_index从用户中删除域)
user2 10

但在我的所有测试中,user1 @ test.net的字节数总和

user1 20
user2 10

username          messageid                                              bytes  
user1@test.net  FD5414C0828B0C498DD655CDA90FFCA83D2D088D67@test.net    10   
user1@test.net  FD5414C0828B0C498DD655CDA90FFCA83D2D088D67@test.net    10   
user2@test.net  XX5414C0828B0C498DD655CDA90FFCA83D2D088D77@test2.net   5    
user2@test.net  YY5414C0828B0C498DD655CDA90FFCA83D2D088D77@test2.net   5

有什么想法吗?

提前感谢您的时间和帮助。
干杯,
马塞罗

1 个答案:

答案 0 :(得分:6)

您的数据有重复的记录,您需要摆脱它们。您可以使用下面的查询 - 它有一个内部选择,可以删除重复项,然后根据用户总结所有字节。

我没有进入子串问题,因为我假设你已经处理过了(如果你想让我添加它,请发表评论......)

SELECT 
  t.username, SUM(t.bytes)
FROM
( SELECT username, messageid, bytes 
  FROM my_table
  GROUP BY username, messageid) as t
GROUP BY t.username