zoukankan      html  css  js  c++  java
  • hive之RANK排名


    RANK() 排序相同时会重复,总数不会变
    DENSE_RANK() 排序相同时会重复,总数会减少
    ROW_NUMBER() 会根据顺序计算

    《小小的案例》

    1)数据准备:
    #vi score.txt
    孙悟空 语文 87
    孙悟空 数学 95
    孙悟空 英语 68
    大海 语文 94
    大海 数学 56
    大海 英语 84
    宋宋 语文 64
    宋宋 数学 86
    宋宋 英语 84
    婷婷 语文 65
    婷婷 数学 85
    婷婷 英语 78


    2)需求:
    计算每门学科成绩排名。

    3)创建表:
    create table score(
    name string,
    subject string,
    score int)
    row format delimited fields terminated by " ";

    4)将数据导入到表中:
    load data local inpath '/xxx/score.txt' into table score;

    5)按需求查询数据
    select name,
    subject,
    score,
    rank() over(partition by subject order by score desc) rp,
    dense_rank() over(partition by subject order by score desc) drp,
    row_number() over(partition by subject order by score desc) rmp
    from score;

    7)结果展示:
    name subject score rp drp rmp
    孙悟空 数学 95 1 1 1
    宋宋 数学 86 2 2 2
    婷婷 数学 85 3 3 3
    大海 数学 56 4 4 4
    宋宋 英语 84 1 1 1
    大海 英语 84 1 1 2
    婷婷 英语 78 3 2 3
    孙悟空 英语 68 4 3 4
    大海 语文 94 1 1 1
    孙悟空 语文 87 2 2 2
    婷婷 语文 65 3 3 3
    宋宋 语文 64 4 4 4

  • 相关阅读:
    Java虚拟机:二、Java内存区域
    Filter模块插件的详细介绍
    Input模块插件的详细介绍
    Logstash的简单介绍
    Logstash的下载安装
    安装Ruby和logstash插件
    Kibana安装与web界面
    ElasticSearch的下载安装
    Flink项目点 pom文件
    IDEA的配置
  • 原文地址:https://www.cnblogs.com/yumengfei/p/11900720.html
Copyright © 2011-2022 走看看