高级sql技巧

devtools/2024/10/22 10:01:56/

以下是一些高级 SQL 技巧:

一、窗口函数

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

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

例如:

sql">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() 等聚合函数在窗口中进行计算。

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

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


http://www.ppmy.cn/devtools/127797.html

相关文章

新一代Linux防火墙已经来临(iptables面临淘汰)

本文全面的介绍了iptables和nftables这两个Linux防火墙工具的基本概念及其主要区别,并给出了选择哪一个工具的建议。 iptables是较早版本的Linux防火墙工具,它已经广泛应用于各种Linux发行版中。iptables的优点在于其广泛的文档支持和社区经验积累&…

在MySQL中为啥引入批量键访问(Batch Key Access, BKA)

批量键访问(Batch Key Access, BKA) 是 MySQL 在某些情况下用于优化 JOIN 操作的一种技术,特别是在通过索引进行 JOIN 时,它能有效减少查询的随机 I/O。批量键访问优化通过将一批主键或索引键一次性发送给存储引擎来查找匹配的行&…

自适应权重

自适应权重(adaptive weights)是一种动态调整权重的策略,广泛应用于深度学习和机器学习的不同领域。这种策略的核心思想是,在模型训练或推理过程中,根据输入数据、模型状态或任务需求来调整各个部分的权重,…

Web,RESTful API 在微服务中的作用是什么?

大家好,我是锋哥。今天分享关于【Web,RESTful API 在微服务中的作用是什么?】面试题?希望对大家有帮助; Web,RESTful API 在微服务中的作用是什么? 在微服务架构中,Web 和 RESTful …

简单三步完成 Telegram 生态的 Web3 冷启动

在竞争激烈的 Web3 领域,强有力的启动往往能决定成败。Telegram 无疑当下最火热的流量池,是很多 Web3 项目冷启动阶段的必选项。 但眼看着好多项目在 Telegram 生态火速获取百万级甚至千万级别的用户,自己的项目要怎么开始做增长,…

比XML更简洁的配置文件——yml(2min了解)

对于计算机应用开发技术,这条路的方向总是化繁为简的。或许有一天,微机课上的小学生,正玩着拼图游戏来开发一款App…… 在Java Web开发中,XML(可扩展标记语言)和YAML(YAML Aint Markup Language…

【Visual Studio 2019 C++ 编译器的路径添加到系统 PATH 环境变量 】

对于某些 Python 包,特别是那些涉及本地扩展或需要编译 C/C 代码的包,需要一个支持 C 开发的环境。Visual Studio 是一个全面的开发环境,它提供了编译器、调试器以及其他许多工具,这些工具对于开发和编译 C 代码非常有用。 下载网…

NVIDIA Jetson支持的神经网络加速的量化平台

NVIDIA Jetson支持的神经网络加速的量化工具、技术 NVIDIA Jetson 是专为边缘计算和嵌入式系统设计的高性能计算平台,它支持多种深度学习模型的部署和推理。对于神经网络加速的量化平台,Jetson 支持以下技术和工具: TensorRT:Ten…