我在使用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
有什么想法吗?
提前感谢您的时间和帮助。
干杯,
马塞罗
答案 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