SQL销售额连续3天超过100的商品

: order_detail
字段:order_id sku_id create_date price sku_num

需求:商品销售额连续三天超过100的商品

 1 -- 方法一
 2 select distinct sku_id from (
 3     select sku_id,create_date,flag
 4     ,lead(flag,1,9999) over(partition by sku_id order by create_date) aflag
 5     ,lead(flag,2,9999) over(partition by sku_id order by create_date) atflag
 6 
 7      from (
 8         select sku_id,create_date,tonum,if(tonum>=100,1,0) flag from ( 
 9             select sku_id,create_date,sum(price*sku_num) tonum from  order_detailorder_detail
10             group by sku_id,create_date
11         ) a where flag = 1
12     ) b 
13 ) c where flag = aflag and aflag = atflag 
14 ;
15 
16 
17 -- 方法二 
18 select distinct sku_id from (
19     select sku_id,afdate from (
20         select sku_id,create_date,rn,date_sub(create_date,rn) afdate from(
21         
22             select sku_id,create_date,tonum, row_number() over(partition by sku_id order by create_date) rn from ( 
23                 select sku_id,create_date,sum(price*sku_num) tonum from  order_detailorder_detail
24                 group by sku_id,create_date having sum(price*sku_num) >= 100
25             ) a 
26         )  b
27     ) c group by sku_id,afdate having count(*) >= 3
28 ) d 

 

posted on 2025-06-23 12:11  北京的小乔  阅读(22)  评论(0)    收藏  举报