Мне нужна помощь. У меня есть структура таблиц MySQL, как показано ниже. Заказы не являются ежедневными заказами только для общих заказов. Дата - это метка времени. Я хочу видеть трендовые продажи по категориям за последние 3 дня. Я хочу найти, какой продукт тренд в своей категории
id, product_id, cat_id, orders, date
5, 2345, 15, 120, 2018-06-18 00:00:00
6, 2345, 15, 123, 2018-06-19 00:00:00
1, 2345, 15, 137, 2018-06-22 00:00:00
2, 2345, 15, 140, 2018-06-23 00:00:00
7, 456, 55, 127, 2018-06-18 00:00:00
8, 456, 55, 136, 2018-06-19 00:00:00
3, 456, 55, 152, 2018-06-22 00:00:00
4, 456, 55, 176, 2018-06-23 00:00:00
Спасибо
Я решил проблему. Спасибо
select a.product_id,a.cox-b.az sales from (
SELECT product_id,
max(orders) AS cox
FROM
products
WHERE
date > ( CURDATE() - INTERVAL 3 DAY ) group by product_id order by cox desc) a,
(SELECT product_id,
orders AS az
FROM
products
WHERE
date > ( CURDATE() - INTERVAL 3 DAY ) group by product_id) b
where a.product_id=b.product_id
group by a.product_id order by sales desc
Вам нужно кастинг как дата, группировка для product_id и cat_id и нисходящее упорядочение по порядковым суммам в соответствии с предполагаемым мной выражением слов:
select product_id, cat_id, count(orders) as total_orders
from mytable
where cast(date as date) >= cast(sysdate()-3 as date)
group by product_id, cat_id
order by count(orders) desc;
product_id cat_id total_orders
2345 15 1
456 55 1