我正在寻找一种方法,以找到每一项的qty_sold为前3周在一年中每周,并分类为“高”,如果超过20件在售出的任何前两个星期
同时向sql和python开放。任何帮助都是非常感谢的。
例如,在下面的数据中,苹果的qty_sold,比如51周,qty_sold > 20在前3周的任何一周,即第50,49和48周,分别是143,111和18周,被归类为高。

我的最后输出如下:

高亮显示的行在示例中有足够的数据。
谢谢
发布于 2020-01-29 03:08:05
将其归类为“高”,如果在前两周的任何一周内售出超过20件商品
我不确定这是否符合逻辑,但无论您想做什么,都可以使用窗口函数:
select t.*,
(case when (lag(qty_sold, 1, 0) over (partition by item order by weeknum rows) > 20)::int +
(lag(qty_sold, 2, 0) over (partition by item order by weeknum rows) > 20)::int +
(lag(qty_sold, 3, 0) over (partition by item order by weeknum rows) > 20)::int >= 2
then 'high' else 'low'
end) as frequency
from t;https://stackoverflow.com/questions/59959964
复制相似问题