• Hive rank函数开窗


    表数据如下

    select * from score;
    
    score.name	score.subject	score.score	r1	r2	r3
    大海	语文	94	1	1	1
    大海	英语	84	2	2	2
    大海	数学	56	3	3	3
    婷婷	数学	85	1	1	1
    婷婷	英语	78	2	2	2
    婷婷	语文	65	3	3	3
    孙悟空	数学	95	1	1	1
    孙悟空	语文	87	2	2	2
    孙悟空	英语	68	3	3	3
    宋宋	数学	86	1	1	1
    宋宋	英语	84	2	2	2
    宋宋	语文	64	3	3	3
    

    函数说明: 

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

    select *,rank() over(distribute by name sort by score desc) r1,dense_rank() over(distribute by name sort by score desc) r2, row_number() over(distribute by name sort by score desc) r3 from score;
    
    score.name	score.subject	score.score	r1	r2	r3
    大海	语文	94	1	1	1
    大海	英语	84	2	2	2
    大海	数学	56	3	3	3
    婷婷	数学	85	1	1	1
    婷婷	英语	78	2	2	2
    婷婷	语文	65	3	3	3
    孙悟空	数学	95	1	1	1
    孙悟空	语文	87	2	2	2
    孙悟空	英语	68	3	3	3
    宋宋	数学	86	1	1	1
    宋宋	英语	84	2	2	2
    宋宋	语文	64	3	3	3
    

      

  • 相关阅读:
    C语言-错误处理
    C语言-排序和查找
    PCB设计要点
    C语言-调试
    c++ 概述
    C语言-指针
    C语言-数组与指针 字符与字符串
    C语言-(void*)类型指针
    C语言-字符操作函数
    C语言-链表
  • 原文地址:https://www.cnblogs.com/noyouth/p/12733357.html
Copyright © 2020-2023  润新知