Hive SQL 每日一题
文章平均质量分 82
学习 Hive SQL 知识点、函数使用方法,锻炼业务思维能力,提升实战水平。
月亮给我抄代码
大数据的坑,让我来踩吧!
展开
-
【Hive SQL 每日一题】找出各个商品销售额的中位数
子查询中可以看到,如果总个数为奇数时,那么该组中的中位数有且仅有一个,因为它无论时正序还是逆序排列,中位数的排名都不会发生改变,这种情况时,那么是不是满足条件。这两个函数无法严格的计算出中位数,它们计算的只是一个近似值,意味着和真正的中位数是存在一定差异的,特别是在数据量较少或数据分布不均的情况下。如果总个数为偶数时,根据中位数的特性,该组的中位数一定是两个,那么如何设置条件呢?需求实现之前,我们需要明确中位数的概念,在日常生活中,我们是如何计算中位数的?,是一个奇数,故它的中位数为第。原创 2024-07-15 17:11:43 · 1362 阅读 · 0 评论 -
【Hive SQL 每日一题】在线峰值人数计算
当我们把登录和退出时间都放在同一列时,按照时间排序,是不是就可以精准算出每个时刻在线的人数了,这就是子查询。中将列转为了行,那为什么需要这样做呢?当然是为了方便统计。我们来想想,当一个用户登录后进入系统,那么人数是不是会。函数找出各个时间点内最大的峰值人数,完成~做的事情,通过窗口函数进行累加计算,,反之当用户退出时,人数是不是会。本题最核心的地方在于子查询。最终按时间点分组聚合,通过。原创 2024-07-11 14:22:48 · 692 阅读 · 0 评论 -
【Hive SQL 每日一题】统计每月用户购买商品的种类分布
所以,我们需要先过滤出每个月份符合这个条件的用户ID,由用户ID和月份构建联合键,完成过滤后,再去进行统计。需求说明中,要求我们统计每月各个商品种类的销售分布数据,前提是,只有当用户在当月的下单次数。统计每月用户购买商品的种类分布,每个用户当月的下单次数至少达到。本题的要点在于,如何筛选出我们想要的数据。、category_name 升序排列。时,才被作为有效数据进行统计。次及以上才进行统计。原创 2024-06-02 21:22:34 · 501 阅读 · 0 评论 -
【Hive SQL 每日一题】统计指定范围内的有效下单用户
本题制作参考牛客网进阶题目 ——原创 2024-06-02 16:07:15 · 942 阅读 · 0 评论 -
【Hive SQL 每日一题】统计各个商品今年销售额与去年销售额的增长率及排名变化
惯性思维导致,在排序中,并不是排名越高值越大,相反,因为我们的排名越靠前(越高),其排名值越小,想到这里,就应该明白了。(2)根据(1)中的结果,通过窗口函数排序,获取分别获取两个年度的销售额排名。(3)根据(2)中的结果,判断并计算两个年度的增长率以及排名变化,最终通过。统计各个商品今年销售额与去年销售额的增长率及销售额的排名变化。(1)获取去年与今年两个年度的数据,并进行聚合统计。可能对于排名那里存在疑惑,为什么是。连接商品表,获取商品名称。原创 2024-05-31 18:05:52 · 844 阅读 · 0 评论 -
【Hive SQL 每日一题】分析电商平台的用户行为和订单数据
假设你是一位数据分析师,负责分析某电商平台的用户行为和订单数据,平台上有多个用户,用户可以在不同的日期下单,每个订单包含多个商品。请你完成相关业务分析,帮助平台优化运营策略和用户体验。排序并取出平均每月订单金额和订单数量最高的两个用户。统计每个用户每月的平均订单金额和订单数量;记录订单中商品的信息。原创 2024-05-23 16:26:53 · 1138 阅读 · 0 评论 -
【Hive SQL 每日一题】在线课程学生行为数据分析
假设你是一位数据分析师,负责分析某在线学习平台的学生行为数据,平台上有多个课程,学生可以在不同的日期参加不同的课程,请你完成相关业务分析,帮助平台优化课程内容和学生学习体验。注意,在这里会出现一名学生首日参加多条数据的情况,但由于时间字段没有记录时分秒,无法界定哪条数据先产生,所以这里将首日的数据都进行了保留。在统计时需要去重,因为学生在学习同一门课程时会存在多条记录。按学生性别进行分组,对学习时长累加求和,并统计学生数量;按学生ID进行分组,统计课程ID的数量;记录学生的在线学习课程的数据。原创 2024-05-22 23:30:13 · 997 阅读 · 0 评论 -
【Hive SQL 每日一题】分组排名取值
然后,利用窗口函数对日期差值进行降序排序,取排名为。近的商品销售记录,只需要改变排序的过滤条件即可。那么距今第二近的销售记录显然是第二条,也就是在。首先,计算出每条销售记录距今的销售日期差值;先使用开窗获取销售记录最近以及最远日期;那么明白了需求,想想该如何去实现呢?近的商品销售记录,还可以获取第。通过排名过滤获取最高的销售记录。的数据,这样就能得到结果啦。使用该方法不仅能获取到距今第。利用窗口函数分组降序排列;通过日期过滤获取最终结果。此外没有其它销售记录。原创 2024-05-21 15:21:28 · 456 阅读 · 0 评论 -
【Hive SQL 每日一题】行列转换
列,分别代表每名同学对应的各科成绩,我们只需要在统计时加入判断条件即可,每列只固定求某科的成绩,如果不是则用。解决问题的方式有许多种,但往往我们需要去注重学习解决问题的思路,希望本文对你有所帮助。行转列操作,其实就是将行数据通过列的方式进行查询展示而已,这里行转列数据共有。会返回两个参数,其中第一个参数表示索引,第二个参数才是其对应的值。的方式,将表的一列扩展到多行,从而完成列转行的需求。在只使用一个扩展函数时,并不会产生笛卡尔积,如上所示。条件来进行过滤,取到对应的数据。在形成笛卡尔积后,我们可以使用。原创 2024-05-20 20:34:11 · 1081 阅读 · 0 评论 -
【Hive SQL 每日一题】统计用户留存率
实现用户留存率的需求其实很简单,这里要求在系统上线后,统计每天的用户留存率,我们每次只需要算出“今天”的用户数量与“昨天”的用户数量比例即可。它反映了用户对产品的持续兴趣和满意度,是评估产品成功与否的重要指标之一。用户留存率(User Retention Rate)是一个衡量用户在特定时间段内继续使用某个产品或服务的比例的指标。最终得到的结果是每天的次日留存率趋势,因为我们每次取的数据都是当日与次日的比例。窗口函数来获取上一天的用户登录人数,如果是系统上线第一天,则没有上一天,用。名玩家下载并开始玩游戏。原创 2024-05-19 23:10:15 · 1052 阅读 · 0 评论 -
【Hive SQL 每日一题】统计最近7天内连续下单3日的用户量
通过上面的规律可以发现,如果日期是连续的,那么当它们减去一串顺序的数字后,得到的结果是一致的,我们可以利用这一规则,判断日期是否连续。在这个需求中,并不关心用户购买了多少商品,在意的是用户是否进行了下单,同天下单多次的用户也只算作一次。日内满足多次该条件,但是在这个需求中,每个用户只能算一次,所以还需要去重才能得到最终结果。其实很简单,我们可以通过开窗的方式,计算日期是否连续,我这里是通过打标记来实现的。那么现在来说说这个需求是如何实现的,通过如下。现在得到的结果并不是最终的结果,因为某个用户(原创 2024-05-18 16:10:40 · 931 阅读 · 2 评论 -
【Hive SQL 每日一题】统计最近1天/7天/30天商品的销量
虽然这种方法可以算出结果,但是效率很低,我们需要算三次然后再进行合并,数据量一大的时候那就太慢了,那么有没有更好的方法呢?通过这种方法,我们不再需要写三个子查询然后再进行合并,一个查询即可搞定,提高了整体的运行速度。条件进行过滤,它只会保留符合要求的数据,同样也不会对我们的结果造成影响。行数据,即使数据量变多了也没有关系,因为我们设置了。有用户进行了购买,所以该数据会保留在最近。有用户进行了购买,所以该数据会保留在最近。方法的使用规则,可以百度了解一下。天商品的销量结果中。天商品的销量结果中。原创 2024-05-17 17:07:04 · 1062 阅读 · 0 评论 -
【Hive SQL 每日一题】环比增长率、环比增长率、复合增长率
它用于比较同一时间段内的两个不同年份的数据变化情况,判断增长趋势和比较不同年度的表现。复合增长率是指在一段连续的时间内,某项指标每个月或年平均增长的复合增长率。环比增长率是指两个相邻时段之间某种指标的增长率。通常来说,环比增长率是比较两个连续时间段内某项数据的增长量大小的百分比。理解环比增长率、同比增长率、复合增长率的概念以及计算公式就能够比较容易的实现这个需求。通过计算两者之间的差异,再以百分比的形式表示出来,就得到了环比增长率。通过计算两者之间的差异,再以百分比的形式表示出来,就得到了同比增长率。原创 2023-10-22 12:19:12 · 1870 阅读 · 0 评论 -
【Hive SQL 每日一题】统计用户连续下单的日期区间
函数与行号标记进行运算,如果数据连续的话,那么运算后的日期必然是一样的。统计用户连续下单的日期区间,所以连续的下单日期必须。,显然该日期是连续的,利用这一特性完成该需求。进行分组,同天的下单日期只保留一条。的分组,最大值与最小值日期统计。运算后日期进行分组,过滤数量。窗口函数进行行号标记,然后和。窗口函数对行号进行标记。解决这题的关键是使用。运算后,日期结果都为。原创 2023-09-06 15:15:16 · 1109 阅读 · 0 评论