2015-07-22 2 views
0

Подумайте, как получить что-то подобное в MySQL - в основном мне нужно получить количество заказов в прошлом году по заказу, поэтому, если кто-то сделал три заказа (1.1 .13, 1.7.13 и 1.1.15, первый и последний заказы будут равны нулю, поскольку в предыдущем году не было заказов, но средний был бы таким, как если бы было бронирование за 6 месяцев до этого).MySQL Разработка количества заказов клиентом в предыдущем году

Что-то вроде этого получает первые три, не уверенный, как получить общее количество?

SELECT order_no, email, order_date 
FROM table.orders 

order_no email      order_date  prev_yr_orders 

143254  [email protected] 25/07/2013   1 

646743  [email protected] 24/09/2013   2 

757743  [email protected] 16/02/2014   3 

993253  [email protected] 23/02/2014   4 

535325  [email protected] 31/03/2015   1 
+0

Не ясно, что вы просите. Ваш пример не фигурирует в примере кода. Чего вы хотите достичь? – Elyasin

ответ

0

Вы можете сделать это легко с помощью связанного подзапроса:

select o.*, 
     (select count(*) 
     from orders o2 
     where o2.email = o.email and 
       o2.order_date < o.order_date and 
       o2.order_date >= o.order_date - interval 1 year 
     ) as NumOrdersPrevYear 
from orders o; 
Смежные вопросы