想知道如何在MySQL中完成这样的事情-基本上我需要通过订单来获取前一年的订单数量,所以如果有人下了三个订单(1.1.13,1.7.13和1.1.15,第一个和最后一个订单将是零,因为前一年没有预订,但中间的订单将是一个,因为6个月前有预订)。
像这样的东西得到了前三个,不确定如何获得总数?
SELECT order_no, email, order_date
FROM table.orders
order_no email order_date prev_yr_orders
143254 example@example.com 25/07/2013 1
646743 example@example.com 24/09/2013 2
757743 example@example.com 16/02/2014 3
993253 example@example.com 23/02/2014 4
535325 example@example.com 31/03/2015 1发布于 2015-07-22 23:55:05
您可以使用相关子查询轻松完成此操作:
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;https://stackoverflow.com/questions/31567810
复制相似问题