SQL中不同日期页面视图的指数衰减
我有一个不同的日期与数量的产品在一个网页上查看了30天的时间框架。我试图用SQL创建一个指数衰减模型。我之所以使用指数衰减,是因为我想强调最新的事件,而不是老事件。我不知道如何在SQL中编写它而不出错。我从来没有这样做过这种类型的模型,所以想确保我做得正确 ================================= 数据如下所示SQL中不同日期页面视图的指数衰减,sql,exponential,calculus,Sql,Exponential,Calculus,我有一个不同的日期与数量的产品在一个网页上查看了30天的时间框架。我试图用SQL创建一个指数衰减模型。我之所以使用指数衰减,是因为我想强调最新的事件,而不是老事件。我不知道如何在SQL中编写它而不出错。我从来没有这样做过这种类型的模型,所以想确保我做得正确 ================================= 数据如下所示 product views date a 1 2014-05-15 a 2 2
product views date
a 1 2014-05-15
a 2 2014-05-01
b 2 2014-05-10
c 4 2014-05-02
c 1 2014-05-12
d 3 2014-05-11
product views date rownum
--------------------------------------------------
a 1 2014-05-15 1
a 2 2014-05-14 2
a 2 2014-05-13 3
b 2 2014-05-10 1
b 3 2014-05-09 2
b 2 2014-05-08 3
b 1 2014-05-07 4
================================
代码:
不确定要编写什么来执行该模型
我想惩罚那些被浏览的老产品,而不是最近浏览的产品
感谢您的帮助您可以这样做:
product views date
a 1 2014-05-15
a 2 2014-05-01
b 2 2014-05-10
c 4 2014-05-02
c 1 2014-05-12
d 3 2014-05-11
product views date rownum
--------------------------------------------------
a 1 2014-05-15 1
a 2 2014-05-14 2
a 2 2014-05-13 3
b 2 2014-05-10 1
b 3 2014-05-09 2
b 2 2014-05-08 3
b 1 2014-05-07 4
然后,下一个查询(ii)使用行数构造指数衰减因子0.9^(rownum-1)并将其应用于视图。结果是
product adjusted_views date rownum
--------------------------------------------------
a 1 * 0.9^0 2014-05-15 1
a 2 * 0.9^1 2014-05-14 2
a 2 * 0.9^2 2014-05-13 3
b 2 * 0.9^0 2014-05-10 1
b 3 * 0.9^1 2014-05-09 2
b 2 * 0.9^2 2014-05-08 3
b 1 * 0.9^3 2014-05-07 4
在最后一步(外部查询)中,将汇总调整后的视图,因为这似乎是您感兴趣的数量
但是,请注意,为了保持一致,日期之间应该有规则的距离,例如,总是在一天(--这里不是一天,那里不是一个月,因为它们将以类似的方式进行加权,尽管它们不应该如此)。您是否知道
按顺序
?我对任何一行都感到困惑。这也意味着什么?它意味着你想要应用指数衰减因子的任何东西。在您的情况下,可能是视图。我编辑了答案,希望能解决你的问题。
product adjusted_views date rownum
--------------------------------------------------
a 1 * 0.9^0 2014-05-15 1
a 2 * 0.9^1 2014-05-14 2
a 2 * 0.9^2 2014-05-13 3
b 2 * 0.9^0 2014-05-10 1
b 3 * 0.9^1 2014-05-09 2
b 2 * 0.9^2 2014-05-08 3
b 1 * 0.9^3 2014-05-07 4