Подсчёт суммы заказов за 24 часа
Подскажите, пожалуйста! My SQL база данных. Есть user, TrxNumber (номер заказа) TrxDate (дата заказа), TrxAmount (сумма заказа). Нужно подсчитать сумму заказов для каждого user'а за 24 часа и показать сумму. В идеале, мне нужно вывести все заказы, сумма которых за 24 часа превышает Х величину по useru. Т.е. если Петров сделал заказ 2023-11-14 10:05:00,то надо проверить были ли еще заказы в течении 24 часов и вывести их сумму.
Ответы (1 шт):
Самый простой вариант - напрямую посчитать нужную Вам сумму заказов user'а за предыдущие 24 часа.
Вариант подсчета суммы заказов в диапазоне от 1 до 1440 минут ранее текущего.
select *
,(select sum(TrxAmount) from orders o2 where o2.userId=o.userId
and timestampdiff(minute,o2.TrxDate,o.TrxDate) between 1 and 1440) prevSum
from orders o
Или подсчета суммы заказов в диапазоне от 0 до 1440 минут (сутки, не календарные) включая текущий заказ.
select *
,(select sum(TrxAmount) from orders o2 where o2.userId=o.userId
and timestampdiff(minute,o2.TrxDate,o.TrxDate) <=1440) totSum24
from orders o
Если не удовлетворит по производительности или по другим причинам, можно поискать более сложные решения.