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

postgresql 分类排名

postgresql 分类排名

  • 排名窗口函数
  • 示例
  • CUME_DIST 和 NTILE

排名窗口函数

排名窗口函数用于对数据进行分组排名。常见的排名窗口函数包括:
ROW_NUMBER,为分区中的每行数据分配一个序列号,序列号从 1 开始分配。
RANK,计算每行数据在其分区中的名次;如果存在名次相同的数据,后续的排名将会
产生跳跃。
DENSE_RANK,计算每行数据在其分区中的名次;即使存在名次相同的数据,后续的
排名也是连续的值。
PERCENT_RANK,以百分比的形式显示每行数据在其分区中的名次;如果存在名次相
同的数据,后续的排名将会产生跳跃。
CUME_DIST,计算每行数据在其分区内的累积分布,也就是该行数据及其之前的数据
的比率;取值范围大于 0 并且小于等于 1。
NTILE,将分区内的数据分为 N 等份,为每行数据计算其所在的位置。
排名窗口函数不支持动态的窗口大小(frame_clause),而是以当前分区作为分析的窗口。

示例

按照部门为单位,计算员工的月薪排名:

select
first_name,last_name,department_id,salary,
row_number() over(partition by department_id order by salary desc),
rank() over(partition by  department_id order by salary desc),
dense_rank() over(partition by  department_id order by salary desc),
percent_rank() over(partition by  department_id order by salary desc)
from employees;

在这里插入图片描述
以上示例中 4 个窗口函数的 OVER 子句完全相同,此时可以采用一种更简单的写法:

select
first_name,last_name,department_id,salary,
row_number() over w,
rank() over w,
dense_rank() over w,
percent_rank() over w
from employees
window w as  (partition by  department_id order by salary desc);

CUME_DIST 和 NTILE

select
first_name,last_name,department_id,salary,
cume_dist() over w,
ntile(6) over w
from employees
window w as  (partition by department_id order by salary desc);

在这里插入图片描述

http://www.lryc.cn/news/129028.html

相关文章:

  • TCP服务器实现—多进程版,多线程版,线程池版
  • Nginx 配置文件的完整指南 (二)
  • AI夏令营第三期 - 基于论文摘要的文本分类与关键词抽取挑战赛笔记
  • 使用qsqlmysql操作mysql提示Driver not loaded
  • Java云原生框架Quarkus初探
  • ElasticSearch相关概念
  • 微服务实战项目-学成在线-项目部署
  • 封装form表单
  • 程序员如何利用公网远程访问查询本地硬盘【内网穿透】
  • 算法|Day42 动态规划10
  • vmalert集成钉钉告警
  • 深入解析 MyBatis 中的 <foreach> 标签:优雅处理批量操作与动态 SQL
  • LeGO-Loam代码解析(二)--- Lego-LOAM的地面点分离、聚类、两步优化方法
  • 程序员如何利用公网打造低成本轻量化的搜索和下载平台【内网穿透】
  • 构建可远程访问的企业内部论坛
  • 2023河南萌新联赛第(六)场:河南理工大学-C 旅游
  • C语言 常用工具型API ----------strchr()
  • 建造者模式的理论与实现
  • 非计算机科班如何顺利转码进入计算机领域?
  • 【C++类和对象】类有哪些默认成员函数呢?(下)
  • springboot自定义banner的输出与源码解析
  • LeetCode 141.环形链表
  • Spring-Bean的生命周期
  • Cat(3):客户端集成—简单案例
  • 虚拟机/双系统Ubuntu扩容
  • Nginx搭建本地服务器,无需购买服务器即可测试vue项目打包后的效果
  • SpringBoot 接口调用出现乱码解决 中文乱码
  • JDBC封装与设计模式
  • 小程序扫描二维码获取网址,通过Jsoup进行解析
  • Kubernetes+EFK构建日志分析平台