和阿里杠上了,数字马力,数据开发-郑州(笔试题)

文章介绍了平移函数lag()和lead()在处理同比和环比计算中的作用,以及如何使用它们进行数据对比。同时提到了LeetCode中的一道相关题目,并指出Hive数据库中的percentile函数可以方便地计算中位数,对于处理大规模数据(如1000W条的产品表)时的数据倾斜问题也进行了讨论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经网友确认出的是原题,好好准备(本人过 ,一题力扣原题)

在这里插入图片描述
平移函数:在工作中一般用来实现数据的同比和环比的计算
同比:今年的4月和去年的4月相比,在两个时间范围内,取相同时间节点的数据进行比较
环比:今年的4月和今年的3月相比,在同一个时间范围内,取相邻的时间节点的数据进行比较

lag() 将数据往下平移一行
lead() 将数据往上平移一行

在这里插入图片描述LeetCode原题
SELECT distinct num ConsecutiveNums FROM (SELECT num ,(row_number() over(order by id)-ROW_NUMBER() over(PARTITION by num ORDER BY id) ) tu FROM logs ) ty GROUP BY num,tu HAVING COUNT(tu )>=3
在这里插入图片描述
hive有中位数函数yyds比关系型数据库简单
percentile:percentile(col, p) col是要计算的列(值必须为int类型),p的取值为0-1,若为0.5,那么就是2分位数,即中位数。

在这里插入图片描述补充问题4 题目产品表数据量1000W 意在考查大小表关联,产生的数据倾斜

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一凡888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值