我在对 messageid 使用不同的字节列求和时遇到问题。根据示例表,我需要得到以下结果:
user1 10(我需要使用substring_index来移除用户的域)
用户 2 10
但是在我所有的测试中,user1@test.net 的字节数都在求和
用户 1 20
用户 2 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
有什么想法吗?
提前感谢您的时间和帮助。
干杯,
马塞洛
最佳答案
您的数据包含重复记录,您需要将其删除。您可以使用下面的查询 - 它有一个内部选择,可以去除重复项,然后根据用户汇总所有字节。
我没有讨论子字符串问题,因为我假设你已经处理过了(如果你想让我添加它,请评论...)
SELECT
t.username, SUM(t.bytes)
FROM
( SELECT username, messageid, bytes
FROM my_table
GROUP BY username, messageid) as t
GROUP BY t.username
关于Mysql distinct 与 sum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5202110/