数仓工具—Hive语法之物理分组(20)
工具 语法 20 hive 分组 物理 数仓
2023-09-11 14:15:37 时间
物理分组
今天我们看一个SQL 实现上的技巧,其实这个东西不难,算是一个小技巧,我们知道我们常见的分组统计都是有一个分组列的,但是没有的时候我们应该怎么办呢,或者我们的分组逻辑,它不是根据某一列分分组来的时候怎么办呢。
我们有这样的一个表ods_la_daily_record_di
用户每天的打卡在这张表里面,里面有这样的一个字段create_date
就是用户的打卡时间,我们希望按照分区时间和打卡时间的分组对用户进行统计,也就是我们认为在越短时间内打卡越活跃,其实就是用户的一组标签。
例如当天打卡的,也就是时间日期差是0则是第一组,时间日期差是1则是第二组,时间日期差是大于等于2小于等于7则是第三组,间日期差是大于等于8小于等于14则是第四组,间日期差是大于等于15小于等于30则是第五组。
这里有个问题那就是用户可能打一天打卡,第二天也打卡了,就是用户同时属于第一组和第二组,这里我们的方法就是按照业务的优先级设置分组,例如第一组的优先级高于第二组,这样我们就可以选择最小的作为用户所属的组,这里就要求你构造分组的时候需要根据业务特点来,然后我们就统计不同组别的用户数。
创建物理分组列再进行分组
需要注意的是我们
- 首先对用户的打卡数据进行了去重,因为一天可能有多次打卡
- 我们创建了分组列gap,然后对用户进行了分组,选择了最小的gap 作为用户的gap ,因为最小的实业务级别最高的,这是根据业务特点定义的
sele
相关文章
- 逆向服务器提权开启3389远程连接工具
- Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
- 通过命令行工具远程注销用户
- Android自动测试之monkeyrunner工具
- C# 枚举操作工具类
- 使用Chrome开发者工具分析JavaScript garbage collector(垃圾回收器)的实现原理
- 干货分享!5款超级实用的Python工具库!
- 判断String为空 StringUtils工具 isNotEmpty与isNotBlank区别
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取 linker 中的 dlopen 函数地址 并 通过 远程调用 执行该函数 )
- ubuntu20.04给jupyter notebook安装自动补全代码语法的插件工具
- 使用TF2.x-GPU中的Tensorboard工具进行可视化训练分析:书写字体源码实现
- SSL证书详解和CFSSL工具使用
- 音频波工具:audacity,一款免费的音频处理软件,查看音频波形,进行音频处理
- 【PHP分享】Windows tail工具分享
- 以Vivado工具为例了解FPGA综合
- Python数学计算工具5、Python求最最小公倍数
- PCL(C++)点云算法源码编译可执行文件工具汇总
- Mac使用systrace/monitor/adb等工具(五十一)