Предположим, таблица заказов
CREATE TABLE Orders (
order_id int(11),
customer_id int(11),
purchase_date datetime
)
Нам нужен следующий отчет: Для клиентов, которые не разместили заказ до этого месяца, сколько заказов было размещено на клиента?
Здесьочень медленный sql, который я сейчас использую:
SELECT count(order_id) num_of_orders, customer_id
FROM (SELECT order_id, customer_id
FROM orders
WHERE customer_id NOT IN (SELECT DISTINCT customer_id
FROM orders
WHERE purchase_date < '2019-03-01')) a
GROUP BY customer_id;
Есть ли более быстрый / более эффективный способ написания этого запроса?