sql题解--打折日期交叉问题

思路:

redmi 2021-06-05 2021-06-21
redmi 2021-06-09 2021-06-15
redmi 2021-06-17 2021-06-26

1) 将当前行以前的数据中最大的end_date放置到当前行
redmi 2021-06-05 2021-06-21 null
redmi 2021-06-09 2021-06-15 2021-06-21
redmi 2021-06-17 2021-06-26 2021-06-21

2) 比较start_date 与 移动下来的数据, 如果开始时间大, 则不需要操作, 反之则将移动下来的数据加一替换当前行的开始时间
redmi 2021-06-05 2021-06-21
redmi 2021-06-22 2021-06-15
redmi 2021-06-22 2021-06-26

3) 将每行的结束时间减去开始时间
redmi 16
redmi -7
redmi 4

4) 按照品牌分组,计算每条数据加一后的总和
redmi 22

sql题解--打折日期交叉问题 - 闻染呀 - 博客园

你可能感兴趣的:(大数据)