SQL打折日期交叉问题

embedded/2025/3/1 18:42:45/

1. 数据结构:数据为平台商品促销数据

       表名:good_promotion

       字段名:brand(品牌)、stt(打折开始日期)、edt(打折结束日期)。

2. 需求:

① 创建表

② 计算每个商品总的打折销售天数

注意:其中的交叉日期。比如vivo品牌,第一次活动时间为2021-06-05到2021-06-15,第二次活动时间为2021-06-09到2021-06-21其中9号到15号为重复天数,只统计一次,即vivo总打折天数为2021-06-05到2021-06-21共计17天。

3. 数据准备:

编辑数据文件good_promotion.txt

[at@hadoop102 ~]$ vim /opt/module/hive/datas/good_promotion.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

​​​​​​​

create table good_promotion(

        brand  string,

        stt    string,

        edt    string

)

row format delimited 

fields terminated by '\t';

sql">selectbrand,sum(if(days>=0,days+1,0)) days
from (selectbrand,datediff(edt,stt) daysfrom (selectbrand,if(maxEdt is null,stt,if(stt>maxEdt,stt,date_add(maxEdt,1))) stt,edtfrom (selectbrand,stt,edt,max(edt) over(partition by brand order by stt rows between UNBOUNDED PRECEDING and 1 PRECEDING) maxEdtfrom good_promotion)t1)t2
)t3
group by brand;


http://www.ppmy.cn/embedded/169125.html

相关文章

如何用 Python 进行机器学习

文章目录 前言1. 环境准备Python安装选择Python开发环境安装必要库 2. 数据收集与加载3. 数据探索与可视化4. 数据预处理5. 模型选择与训练6. 模型评估7. 模型调优8. 模型部署 前言 使用 Python 进行机器学习一般可以按照以下步骤进行,下面将详细介绍每个步骤及对应…

DeepSeek、Grok 和 ChatGPT 对比分析:从技术与应用场景的角度深入探讨

文章目录 一、DeepSeek:知识图谱与高效信息检索1. 核心技术2. 主要特点3. 应用场景4. 实际案例 二、Grok:通用人工智能框架1. 核心技术2. 主要特点3. 应用场景4. 实际案例 三、ChatGPT:聊天机器人与通用对话系统1. 核心技术2. 主要特点3. 应用…

Java进阶——注解一文全懂

Java注解(Annotation)是一种强大的元数据机制,为代码提供了附加信息,能简化配置、增强代码的可读性和可维护性。本文将深入探讨 Java 注解的相关知识。首先阐述了注解的基础概念,包括其本质、作用以及核心分类&#xf…

从零开始:OpenCV计算机视觉基础教程【图像基本操作】

一、视频读取-摄像头读取 cap.get(propId)访问视频的一些功能,propId是0-18之间的数字。 每个数字表示视频得到属性,cap.set(propId, value)可以进行修改,value是新值 例如: cap.get(cv.CAP_PROP_FRAME_WIDTH)) #读取视频宽度…

自然语言处理NLP入门 -- 第六节命名实体识别

1 什么是命名实体识别? 在日常生活中,我们经常会遇到这样的情景:希望从一大段文本中,快速找出所有的人名、地名、组织机构名称、日期、时间等关键信息。举个例子,如果你在阅读一篇关于历史事件的新闻报道时&#xff0…

智能家居遥控革命!昂瑞微HS6621EM:用「芯」定义AIoT时代的语音交互标杆

AIoT爆发期,遥控器为何成为智能家居的「隐形战场」? 随着Meta、苹果等巨头加速布局空间计算,智能家居生态正从「单一设备联网」向「全场景无感交互」跃迁。作为高频使用的入口设备,语音遥控器的性能直接决定用户体验天花板。昂瑞微…

【Python pro】函数

1、函数的定义及调用 1.1 为什么需要函数 提高代码复用性——封装将复杂问题分而治之——模块化利于代码的维护和管理 1.1.1 顺序式 n 5 res 1 for i in range(1, n1):res * i print(res) # 输出:1201.1.2 抽象成函数 def factorial(n):res 1for i in range(1…

网络安全(黑客技术)一2025年自学入门手册_合天网安-零基础系统学习网络安全教程下载

前言 作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。 一、什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队…