SQL高级语法

devtools/2024/10/9 7:23:32/

聚合函数
SELECT vendor_id, AVG(price) AS avg_price FROM Products WHERE price >= 50GROUP BY vendor_id HAVING AVG(price) > 100 ORDER BY avg_price DESC;
PARTITION OVER用于在分区内进行计算。它可以在每个分区内对数据进行排序、聚合、分组等操作。
SELECT id, name, age, salary, AVG(salary) OVER (PARTITION BY age) AS avg_salary FROM employees;根据age列对employees表进行分区。然后,使用AVG()函数计算每个分区内的平均工资ROW_NUMBER()用于为每一行分配一个唯一的序号。它通常与PARTITION BY一起使用,以便在每个分区内为行编号。
SELECT id, name, age, salary, ROW_NUMBER() OVER (PARTITION BY age ORDER BY salary DESC) AS row_num FROM employees;在上面的例子中,根据age列对employees表进行分区。然后,使用ROW_NUMBER()函数为每个分区内的行分配一个唯一的序号,按照salary列的降序进行排序。RANK用于为每一行分配一个排名。它可以根据指定的排序规则,为每个分区内的行进行排名。
SELECT id, name, age, salary, RANK() OVER (PARTITION BY age ORDER BY salary DESC) AS rank FROM employees;根据age列对employees表进行分区。然后,使用RANK()函数为每个分区内的行分配一个排名,按照salary列的降序进行排序。DENSE_RANK与RANK()类似,但它不会跳过排名。即如果有两个行具有相同的排序值,则它们将被分配相同的排名。
SELECT id, name, age, salary, DENSE_RANK() OVER (PARTITION BY age ORDER BY salary DESC) AS dense_rank FROM employees;根据age列对employees表进行分区。然后,使用DENSE_RANK()函数为每个分区内的行分配一个排名,按照salary列的降序进行排序NTILE用于将数据分成指定数量的桶或分区。它可以将数据均匀分布到每个分区中。
SELECT id, name, age, salary, NTILE(4) OVER (ORDER BY salary DESC) AS ntile FROM employees;将employees表的数据分成4个分区,按照salary列的降序进行分区。然后,使用NTILE()函数为每个分区分配一个编号


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

相关文章

priority_queue优先队列

**优先队列** 使用函数库实现&#xff0c;头文件<queue> 1&#xff09;大根堆&#xff08;默认&#xff09;&#xff1a;priority_queue<队列中元素类型> 队列名&#xff1b; 小根堆&#xff1a;&#xff08;实现可向元素*-1再入最大优先队列&#xff09; prio…

力扣9.28

377. 组合总和 Ⅳ 给你一个由 不同 整数组成的数组 nums &#xff0c;和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 数据范围 1 < nums.length < 2001 < nums[i] < 1000nums 中的…

Windows下jenkins执行远程sh脚本中文乱码问题

找到jenkins的安装目录下的jenkins.xml文件&#xff0c;在启动参数后面加上-Dfile.encodingutf-8 然后在服务里重启jenkins服务即可

网络协议的作用是什么

在现代网络环境中&#xff0c;各种设备之间的有效通信离不开网络协议。网络协议是计算机网络中进行信息交换的规则和标准。它们定义了数据传输的格式、顺序、错误处理、以及设备如何相互识别等重要方面。本文将深入探讨网络协议的作用及其在网络通信中的重要性。 什么是网络协…

深化专业,广纳技能,构建软实力

一、引言 ----  随着人工智能&#xff08;AI&#xff09;和生成式人工智能&#xff08;AIGC&#xff09;如ChatGPT、Midjourney、Claude等大语言模型的持续涌现&#xff0c;AI辅助编程工具日益普及&#xff0c;程序员的工作方式正在经历深刻的变革。这种变革既带来了对部分编…

sql注入工具升级:自动化时间盲注、布尔盲注

项目地址&#xff1a;https://github.com/iamnotamaster/sql-injecter 给我之前写的sql注入脚本进行了一些升级&#xff0c;此文章就是对升级内容的分析&#xff0c;升级内容如下&#xff1a; 使用占位符foo来填充payload里需要经常修改的部分 自动判断循环 支持爆破和二分查…

滚雪球学MySQL[11.2讲]:MySQL未来学习方向:大数据、云计算与迁移路径

全文目录&#xff1a; 前言11.2 未来学习方向1. MySQL与大数据1.1 MySQL与大数据生态的结合1.2 MySQL在大数据场景中的应用 2. MySQL与云计算2.1 云数据库服务2.2 容器化与MySQL2.3 云计算与MySQL的结合优势 3. MySQL的替代与迁移3.1 迁移到NoSQL数据库3.2 迁移到分布式SQL数据…

LeetCode从入门到超凡(四)深入浅出理解贪心算法

引言 大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年9月学习赛的LeetCode学习总结文档&#xff1b;本文主要讲解贪心算法。&#x1f495;&#x1f495;&#x1f60a; 介绍 贪心算法是一种经典的算法…