栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

数仓工具—Hive语法之物理分组

数仓工具—Hive语法之物理分组

物理分组

今天我们看一个SQL 实现上的技巧,其实这个东西不难,算是一个小技巧,我们知道我们常见的分组统计都是有一个分组列的,但是没有的时候我们应该怎么办呢,或者我们的分组逻辑,它不是根据某一列分分组来的时候怎么办呢。

我们有这样的一个表ods_la_daily_record_di 用户每天的打卡在这张表里面,里面有这样的一个字段create_date 就是用户的打卡时间,我们希望按照分区时间和打卡时间的分组对用户进行统计,也就是我们认为在越短时间内打卡越活跃,其实就是用户的一组标签。

例如当天打卡的,也就是时间日期差是0则是第一组,时间日期差是1则是第二组,时间日期差是大于等于2小于等于7则是第三组,间日期差是大于等于8小于等于14则是第四组,间日期差是大于等于15小于等于30则是第五组。

这里有个问题那就是用户可能打一天打卡,第二天也打卡了,就是用户同时属于第一组和第二组,这里我们的方法就是按照业务的优先级设置分组,例如第一组的优先级高于第二组,这样我们就可以选择最小的作为用户所属的组,这里就要求你构造分组的时候需要根据业务特点来,然后我们就统计不同组别的用户数。

创建物理分组列再进行分组

需要注意的是我们

  1. 首先对用户的打卡数据进行了去重,因为一天可能有多次打卡
  2. 我们创建了分组列gap,然后对用户进行了分组,选择了最小的gap 作为用户的gap ,因为最小的实业务级别最高的,这是根据业务特点定义的
sele
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/581534.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号