1.商品推荐题目
1.思路:
- 通过取差集 得出要推荐的商品
- 差集的选取:except直接取差集 或者a left join b on where b = null
2.知识点
1.except
selectfriendship_info.user1_id as user_id,sku_id
fromfriendship_infojoin favor_info on friendship_info.user2_id = favor_info.user_id
except
selectuser_id,sku_id
fromfavor_info
2.交并差
2.连续日期
1. 思路:
1.通过lag(向上) lead(向下)求出2天,三天比较
2.通过rk和日期进行相减
- 其实就是连续的日期进行分组,将连续的放入一组,不连续的放入另一组
- 第一步, 使用开窗 构造rk
- 计算日期和rk的差值,算出差值日期,这个差值日期就保证同一个分组,
- 使用开窗count 算出每个分组是否有 符合要求的 >=2
withs1 as (selectuser_id,date (login_ts) start_date,row_number() OVER (PARTITION byuser_idorder bydate (login_ts)) rkfromuser_login_detailGROUP byuser_id,date (login_ts)),s11 as (selectuser_id,start_date,date_sub (start_date, rk) head_datefroms1)
selectuser_id,min(start_date) `start_date`,max(start_date) `end_date`
from s11
GROUP by user_id,head_date
HAVING datediff(max(start_date) ,min(start_date))>=1