滚动月份脚本

时间:2015-09-17 20:22:21

标签: mysql

我试图每个月按地区提供一个12个月的“休眠”客户视图(休眠=过去12个月没有下订单)。下面是脚本的一部分(减去必要的连接)。

select region, count(clientID)as TotalDormant
FROM clients
WHERE test_account = 'NO'
AND DATEDIFF(curdate(), last_order_date) > 365
GROUP BY 1

...返回

Region  Total Dormant  
ROW     500  
US      1000 

但是......因为curdate()它只返回了今天(2015年9月17日)之前一直处于非活动状态的休眠客户。我需要它来返回我们过去11个月中每个月的休眠客户数量。

我需要做些什么才能按地区以12米为单位返回每个月的休眠数?

我已经尝试了inner join,子查询等......但是他们都搞砸了甚至septembers数据(使用上面的基本查询这是准确的)。因此我决定将其删除,寻求建议,并从那里建立。

1 个答案:

答案 0 :(得分:1)

使用 DATE_FORMAT 功能获取日期中的月份:

select region, count(clientID) as TotalDormant,
  DATE_FORMAT(last_order_date,'%Y %m') AS dormantSince
FROM clients
WHERE test_account = 'NO'
AND DATEDIFF(curdate(), last_order_date) > 365
GROUP BY DATE_FORMAT(last_order_date,'%Y %m');

如果同时放置在 GROUP BY 中,查询将在某个月后提供停止。