![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hive sql
不爱学习的
这个作者很懒,什么都没留下…
展开
-
hive转移符号
#结果1: 特殊符号 要放转义词 ,后面能+% 前面可以LIKE ‘%_%’and code3 not LIKE ‘%=%’and code3 not LIKE ‘%\3D%’and code3 not LIKE ‘%message%’原创 2022-02-17 11:33:55 · 890 阅读 · 0 评论 -
hive 计算个人的累计金额占比
SELECT 会员id,sales,Row_Number() OVER (ORDER BY sales desc ) rank1 ,—按照金额降序给个序号 分组就加 partition by salesSUM(sales) OVER() AS total_sales,---- 增加一列总金额SUM(sales) OVER(ORDER BY sales desc ) AS leiji_sales – 金额降序排列后计算累计金额from xxtable...原创 2022-02-15 14:40:32 · 1291 阅读 · 0 评论 -
hive 按照从大到小 top 百分之多少
计算按照从大到小 top 百分之多少的人1,,以及按照降序排好位置,打上序号标签,找到max 那个rank 是多少2,33316839 数值代替最大rank 那个数CASE WHEN RANK_NUM <= 333168390.02 THEN ‘top2%’ – 筛选前20%的物品WHEN RANK_NUM <= 333168390.05 AND RANK_NUM >333168390.02 THEN ‘2%-5%’WHEN RANK_NUM <= 333168390.1原创 2022-02-15 14:37:23 · 1468 阅读 · 0 评论 -
hive 横转列多字段 lateral view explode
select id,tag,tagnew from dw_ph.flat_user_trans_profilelateral view explode(split(tag,"\|")) num as tagnew这里要加一个虚拟名num 或者其他的,hive 页面运行没报错, 没加之前一直报错。原创 2021-02-09 15:24:20 · 709 阅读 · 0 评论 -
HIVE连续日期的统计
前文:SELECTid,COLLECT_set (appdate) flag---- 竖转横函数FROM tableGROUP BYid------ 统计连续 日期的脚本1,代码SELECTID, MAX(activiteday) - MIN(activiteday) diff, COLLECT_set (activiteday)FROM(SELECT a.ID, a.activiteday, (activiteday - rn)as numFROM(SELECT原创 2021-01-18 17:59:10 · 472 阅读 · 0 评论 -
hive 筛选人平均分组方式
随机分,如果有部分字段为空, 可能按照条数来分需要check 下1, ntile(6) over() as group_flag 这样就可以随机分组按照降序2, NTILE(6) OVER(ORDER BY mobile DESC ) AS rank2原创 2020-10-29 17:33:13 · 523 阅读 · 0 评论 -
hive 分组以及数据取出
select订单号字段 ,sort_array(collect_set(多条明细的字段 )) as 字段名from tmp.表名 group by 订单号字段原创 2020-07-28 16:39:37 · 932 阅读 · 0 评论 -
sql多行数据取最大值 max 函数避雷
Max 用法正常用法:select offid,max(time2) from表 Agroup by offidB 经常遇到,表名:tmp.testtable想变成:select a.* from tmp.testtable ainner join(select usercode,max(time2)maxtime from tmp.testtable group by u...原创 2019-12-13 11:51:18 · 2018 阅读 · 0 评论 -
hive 下一行时间减去上一行,多行时间减法
一个人有多行时间,需要每一行 时间与下一行时间间隔也就是:利用下一行的时间 减去上一行的时间1,原始数据长这样: 根据需要保留分秒usercode time1 8501 2019-07-24 8501 2019-07-25 8501 2019-07-30 8501 2019-08-01 8501 2019-08-022,最后需要的数据成这样:u...原创 2019-10-23 09:58:45 · 6351 阅读 · 0 评论