Подзапрос SQL с группировкой - PullRequest
0 голосов
/ 05 ноября 2018
SELECT customer_email, count(*) AS Order_Count,

MAX(created_at) as Last_Order_Date, 
SUM(base_total_paid) AS Total_Lifetime_Sales, 
SUM(base_total_offline_refunded+base_total_online_refunded) AS Refund_Total, 

FROM mage_sales_order AS o

WHERE o.created_at > “2018-01-01” 

AND

value NOT IN (Select customer_email 
FROM mage_sales_order
WHERE WHERE o.created_at < “2018-10-01”)

Попытка удалить заказы, которые были приобретены на прошлой неделе, однако застревает на ГДЕ И, И не уверен! Спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Вам нужен group by. Ответ на ваш вопрос:

SELECT customer_email, count(*) AS Order_Count,
       MAX(created_at) as Last_Order_Date, 
       SUM(base_total_paid) AS Total_Lifetime_Sales, 
       SUM(base_total_offline_refunded+base_total_online_refunded) AS Refund_Total 
FROM mage_sales_order AS o
WHERE o.created_at < CURRENT_DATE - INTERVAL '1 week'
GROUP BY customer_email;

Если вы хотите отфильтровать клиентов , которые не сделали недавний заказ:

SELECT customer_email, count(*) AS Order_Count,
       MAX(created_at) as Last_Order_Date, 
       SUM(base_total_paid) AS Total_Lifetime_Sales, 
       SUM(base_total_offline_refunded+base_total_online_refunded) AS Refund_Total 
FROM mage_sales_order AS o
GROUP BY customer_email
HAVING MAX(o.created_at) < CURRENT_DATE - INTERVAL '1 week'

Обратите внимание, что функции даты / времени различаются в зависимости от базы данных, поэтому точный синтаксис может отличаться в зависимости от используемой базы данных.

0 голосов
/ 05 ноября 2018

Я думаю, что вы хотите удалить идентификатор электронной почты, который заказал <'2018-01-01', чтобы он был ниже запроса </p>

SELECT customer_email, count(*) AS Order_Count,     
MAX(created_at) as Last_Order_Date, 
SUM(base_total_paid) AS Total_Lifetime_Sales, 
SUM(base_total_offline_refunded+base_total_online_refunded) AS Refund_Total     
FROM mage_sales_order AS o     
WHERE o.created_at > '2018-01-01' AND    
customer_email NOT IN (Select customer_email 
FROM mage_sales_order
WHERE  o.created_at < '2018-10-01'
)
group by customer_email
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...