准备数据

浙江,杭州,300

浙江,宁波,150

浙江,温州,200

浙江,嘉兴,100

江苏,南京,270

江苏,苏州,299

江苏,某市,200

江苏,某某市,100

 

创建表

CREATE table pcp

(province string,city string,people int)

ROW FORMAT DELIMITED FIELDS TERMINATED BY ','

STORED AS TEXTFILE;

 

导入数据

load data inpath '/tmp/1.txt' into table pcp;

 

普通查询

select * from pcp order by people desc;

浙江    杭州    300

浙江    宁波    150

浙江    温州    200

浙江    嘉兴    100

江苏    南京    270

江苏    苏州    299

江苏    某市    200

江苏    某某市    100

 

 

综合查询

select province,city,

rank() over (order by people desc) rank,

dense_rank() over (order by people desc) dense_rank,

row_number() over(order by people desc) row_number

from pcp

group by province,city,people;

 

浙江    杭州    300    1    1    1

江苏    苏州    299    2    2    2

江苏    南京    270    3    3    3

江苏    某市    200    4    4    4

浙江    温州    200    4    4    5

浙江    宁波    150    6    5    6

江苏    某某市    100    7    6    7

浙江    嘉兴    100    7    6    8

 

主要注意打圈的:

 row_number顺序下来,

rank:在遇到数据相同项时,会留下空位,(红框内第一列,4,4,6)

dense_rank:在遇到数据相同项时,不会留下空位,(红框内第一列,4,4,5)

 

分组统计查询

select province,city,

rank() over (partition by province order by people desc) rank,

dense_rank() over (partition by province order by people desc) dense_rank,

row_number() over(partition by province order by people desc) row_number

from pcp

group by province,city,people;

江苏    苏州    299    1    1    1

江苏    南京    270    2    2    2

江苏    某市    200    3    3    3

江苏    某某市    100    4    4    4

浙江    杭州    300    1    1    1

浙江    温州    200    2    2    2

浙江    宁波    150    3    3    3

浙江    嘉兴    100    4    4    4

 

Hive ROW_NUMBER,RANK(),DENSE_RANK()的更多相关文章

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

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

  2. 知方可补不足~row_number,rank,dense_rank,ntile排名函数的用法

    回到目录 这篇文章介绍SQL中4个很有意思的函数,我称它的行标函数,它们是row_number,rank,dense_rank和ntile,下面分别进行介绍. 一 row_number:它为数据表加一 ...

  3. ROW_NUMBER()/RANK()/DENSE_RANK()/ntile() over()

    ROW_NUMBER()/RANK()/DENSE_RANK()/ntile() over()   今天女票问我SqlServer的四种排序,当场写了几句Sql让她了解,现把相关Sql放上来. 首先, ...

  4. SQL Server - 四种排序, ROW_NUMBER() /RANK() /DENSE_RANK() /ntile() over()

    >>>>英文版 (更简洁易懂)<<<< 转载自:https://dzone.com/articles/difference-between-rownum ...

  5. SQL Server中排名函数row_number,rank,dense_rank,ntile详解

    SQL Server中排名函数row_number,rank,dense_rank,ntile详解 从SQL SERVER2005开始,SQL SERVER新增了四个排名函数,分别如下:1.row_n ...

  6. 大数据学习day29-----spark09-------1. 练习: 统计店铺按月份的销售额和累计到该月的总销售额(SQL, DSL,RDD) 2. 分组topN的实现(row_number(), rank(), dense_rank()方法的区别)3. spark自定义函数-UDF

    1. 练习 数据: (1)需求1:统计有过连续3天以上销售的店铺有哪些,并且计算出连续三天以上的销售额 第一步:将每天的金额求和(同一天可能会有多个订单) SELECT sid,dt,SUM(mone ...

  7. SQL-OVER与四种排名函数:ROW_NUMBER(),RANK(),DENSE_RANK(),NTILE()

    1 SELECT orderid,custid,val, ROW_NUMBER() OVER(ORDER BY val) AS rownum, RANK() OVER(ORDER BY val) AS ...

  8. rownum, row_number(), rank() , dense_rank(), partition by ,max() keep 语句的区别与用法

    rownum,rownumber(), rank(),dense_rank()都是用来为记录分配序号的, rownum只能在orderby语句排完序后,在外层嵌套查询才能获得正确的行号,用起来相当复杂 ...

  9. sqlserver 中row_number,rank,dense_rank,ntile排名函数的用法

    1.row_number() 就是行号 2.rank:类似于row_number,不同之处在于,它会对order by 的字段进行处理,如果这个字段值相同,那么,行号保持不变 3.dense_rank ...

随机推荐

  1. PAT 甲级 1002 A+B for Polynomials (25 分)

    1002 A+B for Polynomials (25 分) This time, you are supposed to find A+B where A and B are two polyno ...

  2. day 6 元组、字典、字符串

    本节内容 : 1,元组 2,字典 3,字符串作业 produce = [('mac', 9000), ('bicycle', 800), ('computer', 8000), ('book', 50 ...

  3. python requests 模块

    requests 是第三方 python 库,用于处理 url 资源 requests 项目官网:http://www.python-requests.org/en/master/ 安装方式:pip ...

  4. ahk保存

    python ;把大写禁用了,因为确实基本不用.`表示删除,caplock+ijkl可以控制光标 SetCapsLockState , AlwaysOff ;用;p来替换书写经常不好使,因为输入多个字 ...

  5. font-smoothing使用后字体看起来会更清晰舒服

    CSS3里面加入了一个“-webkit-font-smoothing”属性. 这个属性可以使页面上的字体抗锯齿,使用后字体看起来会更清晰舒服. 加上之后就顿时感觉页面小清晰了. 淘宝也在用哦! 它有三 ...

  6. 20154305 齐帅 PC平台逆向破解

    Exp1 PC平台逆向破解 一.实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时 ...

  7. apache、nginx、tomcat配置方法

    https://www.cnblogs.com/chenmh/p/5121830.html

  8. php中 curl, fsockopen ,file_get_contents 三个函数

    赵永斌:有些时候用file_get_contents()调用外部文件,容易超时报错.换成curl后就可以.具体原因不清楚curl 效率比file_get_contents()和fsockopen()高 ...

  9. [UWP]不那么好用的ContentDialog

    ContentDialog是UWP开发中最常用的组件之一,一个体验良好的UWP应用很难避免不去使用它.博客园里也有许多的文章介绍如何来利用ContentDialog实现各种自定义样式的弹窗界面.不过实 ...

  10. 背水一战 Windows 10 (91) - 文件系统: Application Data 中的文件操作, Application Data 中的“设置”操作, 通过 uri 引用 Application Data 中的媒体

    [源码下载] 背水一战 Windows 10 (91) - 文件系统: Application Data 中的文件操作, Application Data 中的“设置”操作, 通过 uri 引用 Ap ...