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

高级sql技巧

以下是一些高级 SQL 技巧:

一、窗口函数

窗口函数可以在不影响数据分组的情况下,对数据进行排序、聚合等操作,非常强大。

  1. 排名函数
    • ROW_NUMBER():为每一行分配一个唯一的连续整数序号。
    • RANK():计算排序值,如果有相同的值会出现并列排名,并且下一个排名会跳过相应的数量。
    • DENSE_RANK():计算排序值,有相同的值会出现并列排名,但下一个排名不会跳过。

例如:

SELECT employee_id, salary,ROW_NUMBER() OVER (ORDER BY salary DESC) AS row_num,RANK() OVER (ORDER BY salary DESC) AS rank_num,DENSE_RANK() OVER (ORDER BY salary DESC) AS dense_rank_num
FROM employees;
  1. 聚合函数作为窗口函数
    • 可以使用 SUM()AVG()COUNT() 等聚合函数在窗口中进行计算。

例如,计算每个员工的工资与部门平均工资的差值:

SELECT employee_id, department_id, salary,salary - AVG(salary) OVER (PARTITION BY department_id) AS salary_diff_from_dept_avg
FROM employees;


http://www.mrgr.cn/news/55514.html

相关文章:

  • 优化分页查询
  • A Graph-Transformer for Whole SlideImage Classification文献笔记
  • Java后端面试题:MySQL篇
  • 【JavaEE初阶】深入理解TCP协议中的封装分用以及UDP和TCP在网络编程的区别
  • R语言中的stat_compare_means():如何解决anova目标对象的方法问题
  • [计算机网络] 常见端口号
  • git配置以及如何删除git
  • Python包---numpy1
  • unix系统的终端、进程、进程组、会话、控制终端、作业控制之间的关系
  • Python内置函数classmethod()详解
  • 有没有好用的待办事项清单软件? —— 一文带你了解
  • 企业成本与时间管理新策略 低代码自动化显身手
  • 《深度学习》模型的部署、web框架 服务端及客户端案例
  • 提升小学语文教学效果的思维导图方法
  • 完爆YOLOv10!Transformer+目标检测新算法性能无敌,狠狠拿捏CV顶会!
  • HTML 实例/测验之HTML 基础一口气讲完!(o-ωq)).oO 困
  • 《Frida Android SO逆向深入实践》书评——清华大学出版社
  • Electron兼容win7版本的打包流程
  • 周报 | 24.10.14-24.10.20文章汇总
  • AI 编译器学习笔记之八 -- Python基础学习
  • 从0到1构建Next.Js项目SSG和SSR应用
  • Effective C++ | 读书笔记 (一)
  • MySQL-31.索引-结构
  • 二叉树习题其二Java【力扣】【算法学习day.9】
  • web前端第一次作业
  • 多线程