SQL笔记#SQL高级处理

news/2025/3/5 5:24:44/

一、窗口函数

1、什么是窗口函数

        窗口函数也称为OLAP函数。OLAP的意思是对数据库数据进行实时分析处理。

2、窗口函数的语法

<窗口函数> OVER ( [PARTITION BY <列清单>]

                                                 ORDER BY <排列用列清单> )

\blacksquare 能够作为窗口函数使用的函数

\boldsymbol{}1、聚合函数(SUM、AVG、COUNT、MAX、MIN)

2、RANK、DENSE_RANK、ROW_NUMBER等专用窗口函数 

3、语法的基本使用方法——使用RANK函数

sql">-- 根据不同的商品种类,按照销售单价从低到高的顺序排序
SELECT product_name, product_type, sale_price,RANK () OVER (PARTITION BY product_typeORDER BY sale_price) AS rankingFROM Product;
sql"> product_name | product_type | sale_price | ranking
--------------+--------------+------------+---------圆珠笔       | 办公用品     |        100 |       1打孔器       | 办公用品     |        500 |       2叉子         | 厨房用具     |        500 |       1擦菜板       | 厨房用具     |        880 |       2菜刀         | 厨房用具     |       3000 |       3高压锅       | 厨房用具     |       6800 |       4T恤衫        | 衣服         |       1000 |       1运动T恤      | 衣服         |       4000 |       2

         RANK() OVER (...):这是一个窗口函数,用于在由 PARTITION BY 和 ORDER BY 定义的窗口内为每一行分配一个排名。

   PARTITION BY 子句用于将数据分为不同的组。在每个组内,RANK() 函数将独立地进行排名。

   ORDER BY 子句用于指定窗口内行的排序方式。可以通过关键字ASC/DESC来指定升序和降序,省略该关键字时会默认按照ASC,也就是升序进行排序。

sql">SELECT product_name,product_type,sale_price,RANK () OVER (PARTITION BY product_typeORDER BY sale_price DESC) AS rankingFROM Product;

4、无需指定PARTITION BY

sql">-- 不指定PARTITION BY
SELECT product_name, product_type, sale_price, RANK () OVER (ORDER BY sale_price) AS rankingFROM Product;
sql"> product_name | product_type | sale_price | ranking
--------------+--------------+------------+---------圆珠笔       | 办公用品     |        100 |       1打孔器       | 办公用品     |        500 |       2叉子         | 厨房用具     |        500 |       2擦菜板       | 厨房用具     |        880 |       4T恤衫        | 衣服         |       1000 |       5菜刀         | 厨房用具     |       3000 |       6运动T恤      | 衣服         |       4000 |       7高压锅       | 厨房用具     |       6800 |       8

5、专用窗口函数的种类

\bullet RANK函数           

        存在相同位次的记录会跳过之后的位次。例如,有3条记录排在第一位时:1,1,1,4……

\bullet DENSE_RANK函数

        存在相同谓词的记录不会跳过之后的位次。例如,有3条记录排在第一位时:1,1,1,2……


http://www.ppmy.cn/news/1576135.html

相关文章

Unity Shader 学习14:模版测试 与 深度测试

目录 一、模版检测 1. 概念 ① 比较 Comp ② 更新 Pass 2. 示例分析 - 3D卡牌 二、深度检测 1. 概念 ① 比较&#xff1a;深度测试 Z-Test ② 更新&#xff1a;深度写入 Z-Write 2. 示例分析 一、模版检测 核心&#xff1a;当前模版缓冲区中的值 [stencilBufferValu…

机器学习——李航(实验)笔记第一二章

plt.plot(x_points,fit_func(p_lsq[0],x_points),labelfitted curve) result leastsq(residuals_func, initial_params, args(x_data, y_data)) regularization0.00001 #较小的λ值意味着正则化作用较弱&#xff0c;模型可能仍然会过拟合&#xff1b;较大的λ值则可能导致模型…

说说 Spring MVC 的执行流程

Spring MVC 是一个基于 Java 的轻量级、开源的 Web 框架&#xff0c;用于构建 Web 应用程序。它通过将请求处理的各个阶段解耦&#xff0c;使得开发更加灵活和模块化。以下是 Spring MVC 的执行流程&#xff0c;从用户发起请求到返回响应的整个过程&#xff1a; --- ### 1. 用…

《机器学习数学基础》补充资料:矩阵运算技巧和矩阵指数

在《机器学习数学基础》第 2 章的 2.1.3 节、2.1.4 节和 2.1.5 节分别介绍了矩阵的加&#xff08;减&#xff09;法、数量乘法和矩阵乘法&#xff0c;这些构成了矩阵的基本运算&#xff0c;并且列出了矩阵的所有运算性质。在手工计算或者原理证明中&#xff0c;这些计算性质会经…

AI Agent 定义与核心要素详解

AI Agent&#xff08;人工智能代理&#xff09;是一种能够感知环境、自主决策并执行任务以达成目标的软件实体。它结合了感知、推理、学习和行动能力&#xff0c;能够在复杂环境中独立或协作工作。以下是其核心要素&#xff1a; 1. 感知 AI Agent 通过传感器或数据输入感知环…

记录一次使用 Goland 连接 Docker 当中 MySQL 踩过的坑

问题描述 最近在做一个 Golang 的 Web 应用&#xff0c;在最后阶段需要使用 Docker 将整个应用打包&#xff0c;由于我在上一个阶段是在 Windows 环境中安装了本地的 MySQL 来进行开发的&#xff0c;在打包 Docker 的过程中出现了一些问题&#xff0c;遂想到在 Docker 中安装一…

VSCode配置LeetCode调试环境

目录 1. 插件 2.登录 3.node.js 4.配置 ”工欲善其事必先利其器“ 1. 插件 首先直接上 vscode官网 来安装vscode&#xff0c;打开vscode之后要安装几个插件&#xff0c;分别LeetCode、Debug LeetCode、C/C&#xff0c;具体按照下图来搜索&#xff0c;再点击install进行安…

playwright Electron 应用程序启动问题处理,依赖处理,本地开发服务器搭建

在使用 Playwright 启动 Electron 应用时&#xff0c;偶尔会遇到 Electron 应用程序启动后没有返回对应的实例&#xff08;ElectronApplication&#xff09;的问题。本文将为你提供可能的原因分析和相应的解决方案 1. 可能的原因分析 1.1 启动命令配置不正确 详细描述 Play…