Задать вопрос
@danforth

Как сделать выборку с округлением до 50?

Всем привет, нужно посчитать количество оформленных заказов и суммы заказов, округленные до 50.

Т.е., например
заказы | сумма
34 | 50
89 | 100
185 | 150
345 | 200
164 | 250
120 | 300


Текущий запрос выглядит так:
SELECT COUNT( * ) AS orders, ROUND( total, -1 ) AS total
FROM shop_order
WHERE state_id =  'completed'
GROUP BY total

Но его проблема в том, что он считает с шагом в 10, т.е. заказы по суммам 10, 20, 30, 40, 50... и я не уверен, что он вообще правильно считает, потому что цифры странные выходят, например есть несколько total с шагом 30, 30, 30, и многие так дублируются. Заменил на
GROUP BY ROUND(total, -1)
и вроде решило проблему, но не решило проблему округления до 50.
Помогите разобрать, как бы все это дело посчитать?
  • Вопрос задан
  • 395 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@Sayonji
В математике округление с произвольным шагом делается стандартной операцией:
50 * round(X / 50)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы