Mysql отличается от суммы - PullRequest
0 голосов
/ 05 марта 2011

У меня возникли проблемы с суммой в столбце байтов с использованием отличного сообщения. Исходя из таблицы образцов, мне нужно получить следующий результат:

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

Есть идеи?

Заранее спасибо за ваше время и помощь.
Cheers,
Марчелло

1 Ответ

6 голосов
/ 06 марта 2011

Ваши данные содержат дубликаты записей, от которых вам нужно избавиться. Вы можете использовать запрос ниже - он имеет внутренний выбор, который удаляет дубликаты, а затем суммирует все байты в соответствии с пользователем.

Я не вдавался в проблему с подстрокой, поскольку я предполагаю, что вы уже справились с ней (прокомментируйте, если хотите, чтобы я добавил ее ...)

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