赞
踩
目 录
如下为平台商品促销
id | stt | edt |
oppo | 2021-06-05 | 2021-06-09 |
oppo | 2021-06-11 | 2021-06-21 |
vivo | 2021-06-05 | 2021-06-15 |
vivo | 2021-06-09 | 2021-06-21 |
redmi | 2021-06-05 | 2021-06-21 |
redmi | 2021-06-09 | 2021-06-15 |
redmi | 2021-06-17 | 2021-06-26 |
huawei | 2021-06-05 | 2021-06-26 |
huawei | 2021-06-09 | 2021-06-15 |
huawei | 2021-06-17 | 2021-06-21 |
计算每个品牌总的打折销售天数。
注意:其中的交叉日期,比如vivo品牌,第一次活动时间为2021-06-05到 2021-06-15,第二次活动时间为 2021-06-09到 2021-06-21其中 9号到 15号为重复天数,只统计一次,即 vivo总打折天数为 2021-06-05到 2021-06-21共计 17天。
(1) 数据
vim brand.txt
- oppo 2021-06-05 2021-06-09
- oppo 2021-06-11 2021-06-21
- vivo 2021-06-05 2021-06-15
- vivo 2021-06-09 2021-06-21
- redmi 2021-06-05 2021-06-21
- redmi 2021-06-09 2021-06-15
- redmi 2021-06-17 2021-06-26
- huawei 2021-06-05 2021-06-26
- huawei 2021-06-09 2021-06-15
- huawei 2021-06-17 2021-06-21
(2)建表
- create table if not exists brand(
-
- id string,
- stt string,
- edt string
-
- )
-
- row format delimited
- fields terminated by '\t'
-
- ;
(3) 加载数据
load data local inpath "/home/centos/dan_test/brand.txt" into table brand;
(4) 查询数据
- hive> select * from brand;
- OK
- oppo 2021-06-05 2021-06-09
- oppo 2021-06-11 2021-06-21
- vivo 2021-06-05 2021-06-15
- vivo 2021-06-09 2021-06-21
- redmi 2021-06-05 2021-06-21
- redmi 2021-06-09 2021-06-15
- redmi 2021-06-17 2021-06-26
- huawei 2021-06-05 2021-06-26
- huawei 2021-06-09 2021-06-15
- huawei 2021-06-17 2021-06-21
- Time taken: 0.113 seconds, Fetched: 10 row(s)
方法一:更新起始位置法
(1)比较基准点获取
问题分析:本题主要的问题点在于如何区分重叠日期。
如果数据中没有重叠的日期的话,我们正常思维就是求出每行的结束日期与开始日期的差值&#
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。