Hive笔记-ntile
时间:2018-02-03 01:18:49来源:杰瑞文章网点击:作文字数:500字
作文导读:暑假是每个小学生最期待的假期,我也不例外,不过今年的暑假特别不一样,因为要升高年级了,低年级的暑假总是玩、玩、玩,高年级的暑假就变成读书、读书、再读书,今年我就过了一个永生难忘的暑假。
HIve-ntile
转载:http://blog.itpub.net/28929558/viewspace-1181432/
有时会有这样的需求:如果数据排序后分为三部分,业务人员只关心其中的一部分,如何将这中间的三分之一数据拿出来呢?
这时比较好的选择,就是使用NTILE函数
例:
SQL> select
2 dept_id
3 ,sale_date
4 ,goods_type
5 ,sale_cnt
6 ,ntile(3) over (order by sale_cnt desc nulls last) all_cmp
7 ,ntile(3) over (partition by dept_id order by sale_cnt desc nulls last) all_dept
8 from criss_sales
9 ;
DEPT_ID SALE_DATE GOODS_TYPE SALE_CNT ALL_CMP ALL_DEPT
D02 2014/5/2 G03 900 1 1
D01 2014/4/30 G03 800 1 1
D01 2014/3/4 G00 700 1 1
D02 2014/3/6 G00 500 2 1
D02 2014/4/27 G01 300 2 2
D01 2014/4/8 G01 200 2 2
D02 2014/4/8 G02 100 3 3
D01 2014/5/4 G02 80 3 2
D01 2014/6/12 G01 3 3
可以看到,Ntile函数为各个记录在记录集中的排名计算比例,返回每条记录所在集合比例位置的值。
例如我们关心全公司前三分之一部分的数据,只需选择 ALL_CMP = 1 的数据就可以了
如果只是关心全公司中间的三分之一数据,只需选择 ALL_CMP = 2 的数据就可以了
Hive笔记-ntile一文由杰瑞文章网免费提供,本站为公益性作文网站,此作文为网上收集或网友提供,版权归原作者所有,如果侵犯了您的权益,请及时与我们联系,我们会立即删除!
杰瑞文章网友情提示:请不要直接抄作文用来交作业。你可以学习、借鉴、期待你写出更好的作文。
说说你对这篇作文的看法吧