mysql - 根据以前的销售预测库存消耗率

标签 mysql sql prediction

假设我有一个 order_items 表来跟踪 items 的销售情况:

CREATE TABLE `items` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `stock` int(11) NOT NULL,
  `price` decimal(8,2) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE `order_items` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `order_id` int(10) unsigned NOT NULL,
  `item_id` int(10) unsigned DEFAULT NULL,
  `quantity` int(11) NOT NULL,
  `price` decimal(8,2) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`),
  KEY `order_items_order_id_index` (`order_id`),
  KEY `order_items_item_id_index` (`item_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

我如何创建一个查询,以根据特定时间段内的过去销售情况返回估计的库存数量消耗率?

例如,如果 item_id 1 在 2 周内售出了一半的库存(基于 created_at 时间戳),我该如何将其放入一个查询会告诉我再过 2 周应该没有剩余数量?

是否也可以在单个查询中按时间跨度对耗尽率进行分组?

这是我的 fiddle : http://sqlfiddle.com/#!2/c568f

最佳答案

这是一个基本查询,可让您了解已售商品的数量以及售出商品所用的天数:

SELECT Item_ID
      ,SUM(Quantity) As TotalSold
      ,DATEDIFF(MAX(Created_AT),MIN(Created_At)) AS Days_To_Sell 
FROM order_items
GROUP BY Item_ID

如果您想要更复杂的分析而不是简单的耗尽率,您可能想要合并一个日历表,以便您可以轻松地按项目分割给定时间段内的所有销售额,但您也可以将日期部分添加到您的 SELECTGROUP BY,如 WEEK()MONTH()

演示:SQL Fiddle

关于mysql - 根据以前的销售预测库存消耗率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26392253/

相关文章:

python - 使用 SqlAlchemy 在 Python 中检索外键映射对象

mysql - 如何像在 mysql 中一样在 postgresql 中列出所有列及其引用?

PHP Mysql复制一条记录到不同的数据库

sql - Postgres 从一个表到多个表选择单个表行

sql - 使用重复条目更新行

python - 是否有用于训练对数线性模型的 python 包?

machine-learning - 预测概率

mysql - 在命令行中执行 .sql 文件

sql - 将 SQL Server 中的 XML 查询结果分配给 XML 类型变量会产生错误

R预测函数类型="class"错误