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

  • 相关阅读:
    Andriod调试桥
    抓包工具charles的使用
    测试常用工具
    Indentation error codes
    Cmder 中文乱码的解决方法
    修改Cmder命令提示符
    统计单词出现的字数
    将字串内容输出到文件
    python数据实例str
    python语法检查工具
  • 原文地址:https://www.cnblogs.com/yumengfei/p/11900720.html
Copyright © 2011-2022 走看看