MySQL группа небольшие результаты - PullRequest
2 голосов
/ 19 марта 2019

У меня есть таблица с несколькими миллионами строк данных.

Обработка этих данных может быть очень сложной для некоторых моих приложений. Я хочу сгруппировать небольшие значения как «другие» значения.

Пример:

date       val   count
2017-01-25 ua5    50
2017-01-25 ua6    49
2017-02-25 ua8    35
2017-02-25 ua3    20
2017-01-25 ua1     2
2017-01-25 ua2     2
2017-02-25 ua9     1
2017-02-25 ua7     1
2017-01-25 ua4     1

Это будет лучше:

date       val   count
2017-01-25 ua5    50
2017-01-25 ua6    49
2017-02-25 ua8    35
2017-02-25 ua3    20
2017-01-25 other   5
2017-02-25 other   2

Значения должны быть сгруппированы по дате, так как я выбираю данные для определенного диапазона.

Возможно ли это даже с помощью mysql?

1 Ответ

2 голосов
/ 19 марта 2019

Предполагая, что меньшие значения меньше 10, вы можете группировать с помощью case выражения:

select date, (case when count <= 10 then 'other' else val end) as val, sum(count)
from table t
group by date, (case when count <= 10 then 'other' else val end);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...