У меня есть таблица order_match , которая содержит order_buyer_id в качестве идентификатора транзакции, созданной покупателем, созданной в качестве даты начала транзакции, а количество - суммой транзакции в кг (килограмм)
в этом случае я хочу посчитать среднее, минимальное, максимальное количество для каждого покупателя, который совершает транзакцию более одного раза за указанный интервал времени, у меня есть среднее, минимальное, максимальное, но я не получаю среднее значение. это пример таблицы:
CREATE TABLE order_match
(`order_buyer_id` int, `createdby` int, `createdAt` datetime, `quantity` decimal(10,2))
;
INSERT INTO order_match
(`order_buyer_id`, `createdby`, `createdAt`, `quantity`)
VALUES
(19123, 19, '2017-02-02', 5),
(193241, 19, '2017-02-03', 5),
(123123, 20, '2017-02-03', 1),
(32242, 20, '2017-02-04', 4),
(32434, 20, '2017-02-04', 5),
(2132131, 12, '2017-02-02', 6)
;
и это синтаксис, над которым я работаю
select
MAX(om.quantity) AS max,
MIN(om.quantity) AS min,
SUM(om.quantity)/ x1.count_ AS average
from (select count(xx.count_) as count_
from (select count(createdby) as count_ from order_match
group by createdby
having count(createdby) > 1) xx
) x1,
(select createdby
from order_match
group by createdby
having count(createdby) > 1) yy,
order_match om
where yy.createdby = om.createdby
and om.createdAt <= '2017-02-04'
and EXISTS (select 1 from order_match om2
where om.createdby = om2.createdby
and om2.createdAt >= '2017-02-02'
and om2.createdAt <= '2017-02-04')
Пожалуйста, помогите мне найти медиану для этого случая
это скрипка
http://sqlfiddle.com/#! 9 / 712b43 / 1