У меня есть следующая простая таблица, которую вы также можете найти в SQL Fiddle
здесь :
CREATE TABLE Orders (
Customer TEXT,
Order_Date DATE
);
INSERT INTO Orders
(Customer, Order_Date)
VALUES
("Customer A", "2017-05-23"),
("Customer B", "2018-09-10"),
("Customer B", "2018-12-14"),
("Customer A", "2019-01-03"),
("Customer A", "2019-02-15"),
("Customer C", "2017-09-04"),
("Customer B", "2019-01-09"),
("Customer A", "2019-02-16"),
("Customer C", "2019-02-12"),
("Customer C", "2019-02-15"),
("Customer B", "2018-01-03");
Как видно из таблицы, отображаются даты заказа от разных клиентов.
Я использую приведенный ниже SQL, чтобы получить клиентов, которые
a) placed an order in February 2019 and
b) did not place an order in the 12 month before and
c) placed an order before this 12 months period
Ссылаясь на ответ в этом вопросе здесь .
SELECT o.Customer
FROM ORDERS o
GROUP BY o.Customer
HAVING SUM( o.Order_Date >= '2019-02-01' AND o.Order_Date < '2019-03-01' ) > 0 AND
SUM( o.Order_Date >= '2018-01-02' AND o.Order_Date < '2019-02-01' ) = 0 AND
SUM( o.Order_Date < '2018-01-02' ) > 0 ;
Вседо сих пор это прекрасно работает.
Однако теперь я хочу добиться того, чтобы SQL отображал список клиентов, отвечающих вышеуказанным критериям, а также counts
количество заказов, размещенных клиентом February 2019
:
В приведенном выше примере я ожидал бы следующий результат:
Customer C 2
Что мне нужно изменить в своем запросе, чтобы добиться этого?