- 博客(10)
- 收藏
- 关注
原创 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 6400
原创 统计学习篇
1,离散变量,也就是看数字末尾的小数点后面是否有意义,哑变量男女0,12,连续变量,小数点后面是数据有意义的就是连续变量, 金额,身高目前不涉及怎么用,这里就是概念量化数字的相似性即「集中趋势量数」(measures of central tendency),包括平均数、中位数和众数;量化数字的差异即「差异量数」(measures of variability),包括方差和标准差。案例1:这里平均数4.75我们的目标是计算数字之间的差异,以及数字与平均值之间的差异我们无法计算所有差异的总和。因
2023-03-16 17:02:33 97
原创 hive转移符号
#结果1: 特殊符号 要放转义词 ,后面能+% 前面可以LIKE ‘%_%’and code3 not LIKE ‘%=%’and code3 not LIKE ‘%\3D%’and code3 not LIKE ‘%message%’
2022-02-17 11:33:55 900
原创 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 1311
原创 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 1506
原创 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 736
原创 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 497
原创 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 529
原创 hive 分组以及数据取出
select订单号字段 ,sort_array(collect_set(多条明细的字段 )) as 字段名from tmp.表名 group by 订单号字段
2020-07-28 16:39:37 964
原创 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 2035
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人