美文网首页
Hive分组TopN

Hive分组TopN

作者: 喵星人ZC | 来源:发表于2020-08-05 14:47 被阅读0次

People表明细如下:


image.png

需求:按照性别分组,求分组后年龄最大的两个年龄的人员信息

SELECT * FROM
(select id,name,age,sex,
row_number()  OVER(partition by sex order by age desc) r
 FROM safety.dw_hive_people_df) t
 WHERE r<=2
image.png

学生技能表如下


image.png

需求:按照技能分组,求分组后年龄最大的两个学生信息

先将skills炸开

SELECT id,name,age,skill,
row_number() over(partition by skill order by age desc ) r
 FROM safety.dw_hive_stu_skils_df 
LATERAL VIEW explode(split(skills,'-')) tb_view as skill
image.png

如果是SparkSQL可以直接写成

SELECT id,name,age,explode(split(skills,'-')) as skill
 FROM safety.dw_hive_stu_skils_df 

最终统计SQL为:

SELECT id,name,age,skill FROM 
(
SELECT id,name,age,skill,
row_number() over(partition by skill order by age desc ) r
 FROM safety.dw_hive_stu_skils_df 
LATERAL VIEW explode(split(skills,'-')) tb_view as skill
) t
where t.r<=2
image.png

相关文章

  • Hive分组TopN

    People表明细如下: 需求:按照性别分组,求分组后年龄最大的两个年龄的人员信息 学生技能表如下 需求:按照技能...

  • Hive分组取TOPN数据

    1、ROW_NUMBER,RANK(),DENSE_RANK() 语法格式:row_number() OVER (...

  • hive分组取随机数

    hive取随机的数据,可以使用rand()函数,用rand()对数据排序,取topN如果要用到分组取随机数,比如每...

  • Spark 分组TopN

  • mongodb 分组 topN

    来源:https://groups.google.com/forum/#!topic/mongodb-user/R...

  • Spark分组取TopN

    本文记录了利用Scala和Java两种语言来实现先分组,然后取每个分组的TopN。 1.文本内容 班级名 空格 分...

  • spark分组取topN

    row_number() over(partition by cooperate_id order by day ...

  • 【MySql】分组topN问题

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:...

  • 学习中的关键的问题

    hive中的topn操作需要使用到hive的窗口函数执行操作的。 spark的udf可以实现自定义的udf的函数的...

  • 2020-11-27-Spark-6(Spark-Core)

    spark练习题处理数据上的分组和业务需求上的分组 1.案例topN(要点使用模式匹配重新分组) 2.基础练习题(...

网友评论

      本文标题:Hive分组TopN

      本文链接:https://www.haomeiwen.com/subject/aqpnrktx.html