gpt4 book ai didi

sql - 如何找到连续的星期

转载 作者:行者123 更新时间:2023-12-02 01:03:56 25 4
gpt4 key购买 nike

我在尝试查找产品已售出的连续几周时遇到了一些麻烦。我已将日期转换为周数并为其分配了一个数字,但其中很多都有空缺,没有销售。我如何查找是否有超过 3 周的促销事件?

当前数据:

Product_ID ProductCategory  WeekNumberOfYear
123 CSF 8
123 CSF 10
456 CSF 1
456 CSF 2
456 CSF 3
456 CSF 4
789 MLI 1
789 MLI 2
789 MLI 3

如您所见,产品 456 是唯一一个连续销售超过 3 周的产品

我的输出应该是:

Product_ID ProductCategory  TotalConsecutiveWeeks
456 CSF 4

Product_ID ProductCategory
456 CSF

如何避免 3 周或更短时间内的非连续销售?任何建议将不胜感激。

最佳答案

好的,所以您可以使用如下查询来查找趋势超过 3 周的所有产品。

提示:将 where 子句中的 3 更改为您想要的任何数字,以获得趋势所需的最少周数 Working demo

create table sales (Product_ID int, ProductCategory varchar(10),  WeekNumberOfYear int)
insert into sales values
(123,'CSF',8)
,(123,'CSF',10)
,(456,'CSF',1)
,(456,'CSF',2)
,(456,'CSF',3)
,(456,'CSF',4)
,(789,'MLI',1)
,(789,'MLI',2)
,(789,'MLI',3)
;

; with cte as
(
select *,
idx= WeekNumberOfYear- row_number() over (partition by product_id order by weekNumberOfYear)
from sales
)

select
product_id,
ProductCategory,
count=count(1)
from cte
group by product_id,ProductCategory,idx
having count(1)>3

关于sql - 如何找到连续的星期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48776132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com