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

php网站的优点大型网站设计

php网站的优点,大型网站设计,网站维护与建设考试,电脑网页制作软件有哪些SQL中的窗口函数(Window Functions)是一种特殊的函数,它允许在查询的结果集的行之间进行计算。与聚合函数不同的是,窗口函数不会将多行数据聚合成一行;相反,它们可以为结果集中的每一行执行计算&#xff0c…

SQL中的窗口函数(Window Functions)是一种特殊的函数,它允许在查询的结果集的行之间进行计算。与聚合函数不同的是,窗口函数不会将多行数据聚合成一行;相反,它们可以为结果集中的每一行执行计算,并返回一个值。这使得窗口函数非常适合用于需要保持原始行信息的同时进行复杂分析的场景。

常见的窗口函数包括:

1.ROW_NUMBER(): 为分区内的每一行分配一个唯一的行号。

2.RANK(): 根据ORDER BY子句指定的顺序对结果集进行排名。如果有相同的值,则它们会得到相同的排名,但会影响后续排名的编号。 

3.DENSE_RANK(): 类似于RANK(),但是当有相同排名时,DENSE_RANK()不会跳过后续的排名编号

4.NTILE(n): 将结果集划分为n个大致相等的部分,为每一行分配桶编号。

5.LAG() / LEAD(): 分别访问当前行之前或之后的指定行的数据。这对于比较当前行和前一行或后一行的数据非常有用。

6.SUM(), AVG(), MIN(), MAX() 等聚合函数也可以作为窗口函数使用,提供累计、移动平均等高级分析能力。

目录

一、创建表并插入数据

二、演示几种不同的窗口函数用法

1. ROW_NUMBER() OVER() 

2. RANK() over()

3. DENSE_RANK()

4. NTILE(n)

5.LAG() 和 LEAD() 

我们可以从零开始,创建一个简单的数据表,并插入一些示例数据,然后通过窗口函数进行演练。

一、创建表并插入数据
CREATE TABLE sales (id INT PRIMARY KEY,employee_id INT,sale_date DATE,amount DECIMAL(10, 2)
);INSERT INTO sales (id, employee_id, sale_date, amount) VALUES
(1, 101, '2025-06-01', 234.56),
(2, 102, '2025-06-02', 123.45),
(3, 101, '2025-06-03', 345.67),
(4, 103, '2025-06-04', 456.78),
(5, 102, '2025-06-05', 567.89),
(6, 101, '2025-06-06', 678.90);
二、演示几种不同的窗口函数用法
1. ROW_NUMBER() OVER() 

为每位员工的销售记录按日期排序分配一个唯一的行号。

SELECT id,employee_id,sale_date,amount,ROW_NUMBER() OVER (PARTITION BY employee_id ORDER BY sale_date) AS row_num
FROM sales;

输出示例如下:

2. RANK() over()

根据销售金额对每位员工的销售记录进行排名。如果有相同的销售金额,它们会得到相同的排名,但后续排名会跳过。

SELECT id,employee_id,sale_date,amount,RANK() OVER (PARTITION BY employee_id ORDER BY amount DESC) AS rank_by_amount
FROM sales;

3. DENSE_RANK()

RANK()类似,但如果存在相同的销售金额,它不会跳过后续的排名编号。

SELECT id,employee_id,sale_date,amount,DENSE_RANK() OVER (PARTITION BY employee_id ORDER BY amount DESC) AS dense_rank_by_amount
FROM sales;

4. NTILE(n)

将结果集划分为n个大致相等的部分,为每一行分配桶编号。这里我们将每个员工的销售记录分成两部分(即NTILE(2))。

SELECT id,employee_id,sale_date,amount,NTILE(2) OVER (PARTITION BY employee_id ORDER BY sale_date) AS ntile_bucket
FROM sales;

5.LAG() 和 LEAD() 

分别访问当前行之前或之后的指定行的数据。这对于比较当前行与前一行或后一行的数据非常有用。

使用 LAG() 查看每位员工上一笔销售的金额:

SELECT id,employee_id,sale_date,amount,LAG(amount, 1) OVER (PARTITION BY employee_id ORDER BY sale_date) AS previous_sale
FROM sales;

使用 LEAD() 查看每位员工下一笔销售的金额:

SELECT id,employee_id,sale_date,amount,LEAD(amount, 1) OVER (PARTITION BY employee_id ORDER BY sale_date) AS next_sale
FROM sales;


文章转载自:

http://ZxmwoPGZ.tknqr.cn
http://SoVIKDhi.tknqr.cn
http://I1JuoJ60.tknqr.cn
http://dUfYfHWW.tknqr.cn
http://nY3nkJjJ.tknqr.cn
http://EH5k8X3A.tknqr.cn
http://PmJ8zHPT.tknqr.cn
http://2rwKw4YP.tknqr.cn
http://7ZLbkMW6.tknqr.cn
http://f9rjSXtU.tknqr.cn
http://dEDxt03q.tknqr.cn
http://DiRpSTTj.tknqr.cn
http://6EIlyBzo.tknqr.cn
http://Uz3bK9cK.tknqr.cn
http://14OAm7yC.tknqr.cn
http://lvV4fgN6.tknqr.cn
http://DSlKUOyX.tknqr.cn
http://99R01DaV.tknqr.cn
http://kqOwOTxX.tknqr.cn
http://35U4pLBA.tknqr.cn
http://r77t5Sqq.tknqr.cn
http://v5uKKOFY.tknqr.cn
http://qX7zswhl.tknqr.cn
http://reR4aGVd.tknqr.cn
http://XHMwxtR8.tknqr.cn
http://XxQTclVj.tknqr.cn
http://wPYK5ET8.tknqr.cn
http://cfTjbh9v.tknqr.cn
http://5XtQ55mT.tknqr.cn
http://fXrOgoFP.tknqr.cn
http://www.dtcms.com/wzjs/745830.html

相关文章:

  • 做最漂亮的网站睢宁网站建设xzqjwl
  • 网站创建一般创建哪种类型企业网站的优化建议
  • 惠州网站制作定制网站漂浮广告效果
  • 网站建设图片素材库网站怎么做企业
  • 营销网站更受用户欢迎的原因是做调研用到的大数据网站
  • 虚拟服务器建网站做优化网站建设
  • 金融网站cms多媒体网页设计
  • 网站建设需要知道什么做服装广告素材网站有哪些
  • led 网站建设产品软文是什么
  • 学网站开发多久小程序商城模板免费
  • 网站建设的技术亮点网站建设专家cms
  • 汽车城网站建设方案上海做原创网站
  • 国内买机票最便宜网站建设产品网站开发计划表
  • 做网站多久学会有网站源代码 怎么样建设网站
  • 建设银行瓶窑支行网站小工厂如何找外贸公司合作
  • 库尔勒网站cn.wordpress.org
  • kuake自助建站系统官网做网站可以赚钱吗
  • 怎么建设两个大淘客网站企业vi是什么意思
  • 网站开发实战项目做网站用什么语言制作最安全?
  • 淮安建设工程协会网站查询easyphp wordpress
  • 浏阳网站制作公司wordpress转中文
  • 国企网站建设的意义重庆网红打卡地
  • 网站 备案 几天html5个人网站源码
  • 大连网站制作 连城传媒服装企业微网站建设
  • 网站评估 源码网站建设与百度推广
  • 义乌城市建设规划网站12345可以咨询房产问题吗
  • 网站建设最重要的环节网站开发类合同
  • 微企业网站模板免费织梦网站支付安装
  • 打开网站弹出广告代码湖南建设人才网官网
  • 大理做网站建设读书网站的意义