MySQL 计算最大连续日期
MySQL 计算最大连续日期
MySQL 经典问题,计算最大连续日期(跨月/年)。
样本数据
表格orders含有订单时间 order_time, 分类 cate, 商品编号 goods_id, 价钱 price, 销量 order_amount。
现找出最大销量大于10000的连续天数。
问题梳理
稍作排序,我们可以看到对于产品2,最大连续销量大于或等于10000的天数是6天。对于产品3则是4天。
代码分步实现
首先找出哪些日期是连续的
SELECT orders.*,
(DATEDIFF(order_time, DATE('1970-01-01')) - ROW_NUMBER()
OVER (PARTITION BY goods_id ORDER BY order_time ASC)) rowNums
FROM orders
WHERE order_amount >= 10000;
对于每个商