PL / SQL:根据日期预测销售

时间:2020-06-03 08:53:38

标签: oracle plsql

声明:我对PL / SQL非常陌生。我以前使用SAS和Python。

我必须预测接下来2周的每一天的销售情况。如果是工作日(例如星期一),我必须使用那些工作日(星期一)的历史销售来预测未来的日子(星期一)。如果是假期(例如圣诞节),我必须在历史圣诞节使用销售。 在python中,我将遍历每一天/每一天,检查是否是假期,并使用我在每种情况下编写的适当函数来挑选适当的日子并进行计算。

PL / SQL中的方法是什么?如何遍历每个观察?我什至可以这样做吗?据我了解,我要解决此问题的步骤是:

  1. 获取接下来2周的列表,创建一列(称为WEEKDAY),以指示该周几。可以通过循环完成吗?
  2. 我将不得不编写一个函数并检查天/ obs是否是假期(我有一个包含假期的表)。
  3. 对于非假日游客,请使用相应的以前的工作日
  4. 对于假期是obs,请使用历史假期。

我的逻辑正确吗? 我还坚持创建函数和循环,所以如果有人可以帮助,将不胜感激。

1 个答案:

答案 0 :(得分:1)

使用SQL进行繁重的工作,主要使用PL / SQL将SQL语句粘合在一起。例如,您可以使用REGR函数来创建简单的普通最小二乘预测,就像我的答案here一样。

使用SQL首先会感到很奇怪,因为它是一种声明式方法,而不是传统的命令式编程。例如,不要遍历每一天-计算整个预测,然后GROUP BY。并且不要创建检查假日的函数,请加入假日表并使用SQL表达式检查假日是否为假日。如果幸运的话,您可以在单个SQL语句中构建整个预测。

第一次使用声明性代码可能会做更多工作。但是,如果做得好,结果将比程序方法更快,更简单。 (至少与使用普通PL / SQL相比。)例如,使用SQL的一个不错的副作用是,添加多线程就像添加单个/*+ parallel */提示一样容易。

如果您需要更强大的预测算法,请查看Oracle Data Mining,它是机器学习/高级分析软件包的一部分。该选项已经存在很长时间了,但是直到最近才免费提供。