当前位置: 首页 > news >正文

自己网站做反链网站升级正在升级维护

自己网站做反链,网站升级正在升级维护,昆明小程序开发公司哪家好,什么软件可以排名次0 问题描述参考链接(3条消息) HiveSql面试题12--如何分析去掉最大最小值的平均薪水(字节跳动)_莫叫石榴姐的博客-CSDN博客文中已经给出了三种解法,这里我们借助于此题,来研究如何用percent_rank()函数求解,简化解题思路…

0 问题描述

参考链接

(3条消息) HiveSql面试题12--如何分析去掉最大最小值的平均薪水(字节跳动)_莫叫石榴姐的博客-CSDN博客

文中已经给出了三种解法,这里我们借助于此题,来研究如何用percent_rank()函数求解,简化解题思路。

1 percent_rank()函数 使用

percent_rank() 函数为分布函数,用于返回某个排序数值在数据集中的百分比排位,其值分布在0-1之间【0,1】,此函数用于计算数值在数据集内的相对位置。

计算公式:当前行rn -1 / 组内行数 -1 其中减去1表示排位时候不包括他本身,表示他前面有多少人比他值低或高,在实际中有一定分析意义。

使用场景:用于关心排在我前面的有多少人。

如:班级成绩为例,返回的百分数60%表示某个分数排在班级总分排名前60%。

比如站队:我往往关心的是排在我前面的有多少人。如下一组数据:

如成绩为20的人,排在他前面的有5个人,除去自身,总共有6个人,那么他的相对排名百分比为 5/6

成绩为10的,排在他前面的有6个人,除去自身,那么整个群体中都比他的分数高,所以也就是100%

成绩

排名(rank)

百分比排名(percent_rank)

100

1

0%

100

1

0%

80

3

33%

40

4

50%

40

4

50%

20

6

83%

10

7

100%

注意点:(1)percent_rank()对重复值的处理

(2)percent_rank()对NULL值的处理

特点:首尾一定是0 和1

cume_dist():累积百分比

和percent_rank()差不多,区别在于是否排除自身影响

含义:

升序排序:表示小于等于当前值的人数所占百分比

降序排序:大于等于当前值的人数所占百分比

2 题目分析

题目中要求是去除最大、最小值后的平均值,因此本题难点问题是如何去除,最大、最小值。我们经过上面分析,percent_rank() 函数为按照某个排序后值进行排名后当前行的占比,其值在[0,1]区间内,按照其特性,我们知道排序后,0和1 的值代表最小和最大值,因此我们根据该函数很容易获取最大最小值的标记,从而解决了row_number() 或dense_rank()函数使用一次排序不能彻底区分最大,最小值的问题,简化了问题的求解方式。具体SQL如下:

with salary as (
select
'10001' emp_num    , '1' dep_num    , '60117'   salary
union all
select '10002' emp_num    , '2' dep_num    , '92102'   salary
union all
select '10003' emp_num    , '2' dep_num    , '86074'   salary
union all
select '10004' emp_num    , '1' dep_num    , '66596'   salary
union all
select '10005' emp_num    , '1' dep_num    , '66961'   salary
union all
select '10006' emp_num    , '2' dep_num    , '81046'   salary
union all
select '10007' emp_num    , '2' dep_num    , '94333'   salary
union all
select '10008' emp_num    , '1' dep_num    , '75286'   salary
union all
select '10009' emp_num    , '2' dep_num    , '85994'   salary
union all
select '10010' emp_num    , '1' dep_num    , '76884'   salary
)
SELECT dep_num,cast(avg(salary) as decimal(18,0)) as avg_salaryfrom(
SELECTemp_num,dep_num,salary,PERCENT_RANK() over(PARTITION BY dep_num ORDER BY salary) as rate
from salary
) twhere rate != 0 and rate != 1
group by dep_num;

3 小结

本文给出了一种利用percent_rank()求去掉最大最小值的平均薪水的方法,该方法更简洁高效,值得借鉴。通过本文需要掌握的姿势点如下:

  • PERCENT_RANK函数的作用、意义及使用场景是什么?

  • PERCENT_RANK函数的结果是如何计算?

  • PERCENT_RANK与cume_disk()函数的区别?

  • 如何利用PERCENT_RANK()函数的特性快速get最大、最小值?

http://www.yayakq.cn/news/256582/

相关文章:

  • 企业网站制作公司24小时接单开发公司竣工员工奖励计划
  • 深圳网站设计|优选灵点网络网站界面设计图片
  • 网站为契机建设校园数字化做网站用什么语言数据库
  • 又拍网站怎么做的济南品牌网站建设低价
  • 做的最好的视频教学网站网站定制兴田德润i在哪里
  • 组建网站开发团队wordpress地址应该填什么意思
  • 纪检网站建设方案沂源网站设计
  • 杭州 企业 建网站html婚纱网站源码
  • 精品源码分享的网站中山市有什么网站推广
  • 网站建设项目安排计划表什么是网站建设外包
  • 加盟高端网站建设怎么注册网站网址
  • 网站建设技术课程设计报告有什么样的网站开发
  • 大兴网站开发网站建设wordpress用户前台删除文章
  • 宁波专业网站建设模板服务长治做网站的公司
  • 研究生网站建设手赚网站哪里可以做
  • 金华网站制作企业无锡名气大的网页设计
  • 长安营销型网站建设给企业做宣传网站的好处
  • 天津企业网站制作公司设计外网
  • 电脑网站在哪里找网页游戏知乎
  • 海口网站建设方案优化网站设置密码访问
  • 博兴网站建设软件下载网站模板
  • 网站关键词中间用十堰seo优化哪家公司好
  • wordpress置顶文章插件学seo哪个培训好
  • 西安定制网站建设公司哪家好wordpress网站顶部
  • asp做的是系统还是网站28创业商机网
  • word模板免费下载网站佛山营销型网站搭建
  • 天水市网站建设南京汽车 企业 网站建设
  • 网站运营的提成方案怎么做wordpress 百度统计
  • 企业备案 网站名称小程序流量点击推广平台
  • 知名网站建设公司 北京网络设计规划