開始,依照顺序,生成分组内记录的序列
–比方,依照pnum降序排列。生成分组内每天的pnum名次
ROW_NUMBER() 的应用场景许多。再比方,获取分组内排序第一的记录等等。

SELECT polno,

       createtime,

       pnum,

       ROW_NUMBER() OVER(PARTITION BY polno ORDER BY pnum desc) AS rn

FROM windows_func;

结果:

polno                   createtime pnum         rn

P066666666666     2016-02-15     20        1

P066666666666     2016-02-13     9         2

P066666666666     2016-02-10     6         3

P066666666666     2016-02-16     2         4

P066666666666     2016-02-11     2         5

P066666666666     2016-02-14     2         6

P066666666666     2016-02-12     1         7

P088888888888     2016-02-15     12        1

P088888888888     2016-02-13     9         2

P088888888888     2016-02-16     3         3

P088888888888     2016-02-11     3         4

P088888888888     2016-02-14     3         5

P088888888888     2016-02-12     1         6

P088888888888     2016-02-10     1         7

RANK 和 DENSE_RANK

—RANK() 生成数据项在分组中的排名,排名相等会在名次中留下空位

—DENSE_RANK() 生成数据项在分组中的排名,排名相等会在名次中不会留下空位

SELECT polno,

createtime,

pnum,

RANK() OVER(PARTITION BY polno ORDER BY pnum desc) AS rn1,

DENSE_RANK() OVER(PARTITION BY polno ORDER BY pnum desc) AS rn2,

ROW_NUMBER() OVER(PARTITION BY polno ORDER BY pnum DESC) AS rn3

FROM windows_func WHERE polno ='P066666666666';

结果:

polno                   createtime pnum         rn1     rn2   rn3

P066666666666     2016-02-15     20        1      1     1

P066666666666     2016-02-13     9         2      2     2

P066666666666     2016-02-10     6         3      3     3

P066666666666     2016-02-11     2         4      4     4

P066666666666     2016-02-14     2         4      4     5

P066666666666     2016-02-16     2         4      4     6

P066666666666     2016-02-12     1         7      5     7

Hive分析窗体函数之NTILE,ROW_NUMBER,RANK和DENSE_RANK的更多相关文章

  1. Hive分析窗体函数之LAG,LEAD,FIRST_VALUE和LAST_VALUE

    环境信息:Hive版本号为apache-hive-0.14.0-binHadoop版本号为hadoop-2.6.0Tez版本号为tez-0.7.0 创建表: ),第三个參数为默认值(当往上第n行为NU ...

  2. Hive分析窗体函数之SUM,AVG,MIN和MAX

    行 AVG(pnum) OVER(PARTITION BYpolno ORDER BY createtime ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOW ...

  3. Hive学习之路 (十四)Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK

    概述 本文中介绍前几个序列函数,NTILE,ROW_NUMBER,RANK,DENSE_RANK,下面会一一解释各自的用途. 注意: 序列函数不支持WINDOW子句.(ROWS BETWEEN) 数据 ...

  4. sql server 中用于排名的三个函数 row_number() ,RANK() 和 DENSE_RANK()

    row_number()  ,RANK() 和  DENSE_RANK()  三个配合over()  使用排名 只是只是计算方式不一样,语法基本一样 语法: ROW_NUMBER() OVER (OR ...

  5. Oracle-分析函数之排序值rank()和dense_rank()

    聚合函数RANK 和 dense_rank 主要的功能是计算一组数值中的排序值. 在9i版本之前,只有分析功能(analytic ),即从一个查询结果中计算每一行的排序值,是基于order_by_cl ...

  6. Hive(七)Hive分析窗口函数

    一数据准备 cookie1,2015-04-10,1 cookie1,2015-04-11,5 cookie1,2015-04-12,7 cookie1,2015-04-13,3 cookie1,20 ...

  7. 关于Hive中常用函数需要注意的点小合集

    1.COALESCE( value1,value2,... ) The COALESCE function returns the fist not NULL value from the list ...

  8. SQL2005四个排名函数(row_number、rank、dense_rank和ntile)的比较

    排名函数是SQL Server2005新加的功能.在SQL Server2005中有如下四个排名函数: .row_number .rank .dense_rank .ntile 下面分别介绍一下这四个 ...

  9. SQL Server:排名函数row_number,rank,dense_rank,ntile详解

    1.Row_Number函数 row_number函数大家比较熟悉一些,因为它的用途非常的广泛,我们经常在分页与排序中用到它,它的功能就是在每一行中生成一个连续的不重复的序号 例如: select S ...

随机推荐

  1. Docker---(6)问题:bash: vi: command not found

    原文:Docker---(6)问题:bash: vi: command not found 版权声明:欢迎转载,请标明出处,如有问题,欢迎指正!谢谢!微信:w1186355422 https://bl ...

  2. 最大似然 vs. 最小二乘

    有一篇是比较最大似然估计和最小二乘法的: http://www.cnblogs.com/hxsyl/p/5590358.html 最大似然估计:现在已经拿到了很多个样本(你的数据集中所有因变量),这些 ...

  3. TabControl控件重绘

    原文地址:http://www.codeproject.com/Articles/91387/Painting-Your-Own-Tabs-Second-Edition 在网上看到重绘TabContr ...

  4. cURL(wget)—— 测试 RESTful 接口及模拟 GET/POST/PUT/DELETE/OPTIONS 请求

    cURL 是一个简单的 http 命令行工具.与最优秀的 Unix 工具一样,在设计之时,cURL 是个小型程序,功能十分专一,而且是故意为之,仅用于访问 http 服务器.(在 Linux 中,可以 ...

  5. SQL Server 2008 Tempdb 数据库迁移

    1.首先检查数据文件位置及名称 SELECT name,physical_name FROM sys.database_files 2.迁移 USE master; GO ALTER DATABASE ...

  6. Oracle空间数据库的备份与恢复

    大型GIS系统,存储.管理海量(TB级)空间数据时,数据库备份变的尤其重要.这里随笔说说冷备份的一种方法. 基于ArcSDE.Oracle空间库的冷备份: (1) 在数据入库工作后或者更新变动较大时, ...

  7. Java反射学习总结一(基础篇)

    Class类是Reflection API中核心的类,他位于Java.lang.Class 列出一些常用的方法. - getName() : 获得类的完整名字 - getFields() : 获得类的 ...

  8. or小计

    1.使用or的时候,必须养成两边添加括号,否则结果完全不一样. 2.or条件如果复杂的情况下,可以适当考虑union all改写.

  9. 【LeetCode-面试算法经典-Java实现】【096-Unique Binary Search Trees(唯一二叉搜索树)】

    [096-Unique Binary Search Trees(唯一二叉搜索树)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given n, how many s ...

  10. oracle数据库未打开解决的方法

    Microsoft Windows [版本号 6.1.7601] 版权全部 (c) 2009 Microsoft Corporation.保留全部权利. C:\Users\Administrator& ...