MySQL计算上一年客户的订单数量

时间:2015-07-22 15:38:57

标签: mysql sql

想知道如何在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

1 个答案:

答案 0 :(得分: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;