1- 请粘贴需要翻译的Markdown或JSON内容,我将按照您提供的规则进行翻译 。
1+ 已理解您的要求,我将严格按照您提供的规则进行翻译。请提供需要翻译的Markdown或JSON内容,我会立即开始翻译工作 。
22
33---
44title: '窗口函数'
55---
66
7- ## 概述 {/ * overview * /}
7+ ## 概述
88
9- 窗口函数操作于一组相关行(称为 “窗口”)。
9+ 窗口函数对一组相关的行( “窗口”)进行操作 。
1010
11- 对于每个输入行,窗口函数返回一个依赖于特定行及窗口中其他行值的输出行 。
11+ 对于每个输入行,窗口函数返回一个输出行,该输出行取决于传递给函数的特定行以及窗口中其他行的值 。
1212
1313主要有两种类型的顺序敏感窗口函数:
1414
15- * ` 排名相关函数 ` :排名相关函数根据行的“排名”列出信息。例如,按年度利润降序排列商店,利润最高的商店排名为1,次高的商店排名为2 ,依此类推。
16-
17- * ` 窗口框架函数 ` :窗口框架函数使您能够在窗口中的子集行上执行滚动操作,例如计算运行总计或移动平均值 。
18-
19- ## 支持窗口的函数列表 {/ * list-of-functions-that-support-windows * /}
20-
21- 以下列表展示了所有支持窗口的函数 。
22-
23- | 函数名称 | 类别 | 窗口 | 窗口框架 | 备注 |
24- | ------------------------------------------------------------------------- | --------------| --------| ----------| -------|
25- | [ ARRAY_AGG] ( ../07-aggregate-functions/aggregate-array-agg.md ) | 通用 | ✔ | | |
26- | [ AVG] ( ../07-aggregate-functions/aggregate-avg.md ) | 通用 | ✔ | ✔ | |
27- | [ AVG_IF] ( ../07-aggregate-functions/aggregate-avg-if.md ) | 通用 | ✔ | ✔ | |
28- | [ COUNT] ( ../07-aggregate-functions/aggregate-count.md ) | 通用 | ✔ | ✔ | |
29- | [ COUNT_IF] ( ../07-aggregate-functions/aggregate-count-if.md ) | 通用 | ✔ | ✔ | |
30- | [ COVAR_POP] ( ../07-aggregate-functions/aggregate-covar-pop.md ) | 通用 | ✔ | | |
31- | [ COVAR_SAMP] ( ../07-aggregate-functions/aggregate-covar-samp.md ) | 通用 | ✔ | | |
32- | [ MAX] ( ../07-aggregate-functions/aggregate-max.md ) | 通用 | ✔ | ✔ | |
33- | [ MAX_IF] ( ../07-aggregate-functions/aggregate-max-if.md ) | 通用 | ✔ | ✔ | |
34- | [ MIN] ( ../07-aggregate-functions/aggregate-min.md ) | 通用 | ✔ | ✔ | |
35- | [ MIN_IF] ( ../07-aggregate-functions/aggregate-min-if.md ) | 通用 | ✔ | ✔ | |
36- | [ STDDEV_POP] ( ../07-aggregate-functions/aggregate-stddev-pop.md ) | 通用 | ✔ | ✔ | |
37- | [ STDDEV_SAMP] ( ../07-aggregate-functions/aggregate-stddev-samp.md ) | 通用 | ✔ | ✔ | |
38- | [ MEDIAN] ( ../07-aggregate-functions/aggregate-median.md ) | 通用 | ✔ | ✔ | |
39- | [ QUANTILE_CONT] ( ../07-aggregate-functions/aggregate-quantile-cont.md ) | 通用 | ✔ | ✔ | |
40- | [ QUANTILE_DISC] ( ../07-aggregate-functions/aggregate-quantile-disc.md ) | 通用 | ✔ | ✔ | |
41- | [ KURTOSIS] ( ../07-aggregate-functions/aggregate-kurtosis.md ) | 通用 | ✔ | ✔ | |
42- | [ SKEWNESS] ( ../07-aggregate-functions/aggregate-skewness.md ) | 通用 | ✔ | ✔ | |
43- | [ SUM] ( ../07-aggregate-functions/aggregate-sum.md ) | 通用 | ✔ | ✔ | |
44- | [ SUM_IF] ( ../07-aggregate-functions/aggregate-sum-if.md ) | 通用 | ✔ | ✔ | |
45- | [ CUME_DIST] ( cume-dist.md ) | 排名相关 | ✔ | | |
46- | [ PERCENT_RANK] ( percent_rank.md ) | 排名相关 | ✔ | ✔ | |
47- | [ DENSE_RANK] ( dense-rank.md ) | 排名相关 | ✔ | ✔ | |
48- | [ RANK] ( rank.md ) | 排名相关 | ✔ | ✔ | |
49- | [ ROW_NUMBER] ( row-number.md ) | 排名相关 | ✔ | | |
50- | [ NTILE] ( ntile.md ) | 排名相关 | ✔ | | |
51- | [ FIRST_VALUE] ( first-value.md ) | 排名相关 | ✔ | ✔ | |
52- | [ FIRST] ( first.md ) | 排名相关 | ✔ | ✔ | |
53- | [ LAST_VALUE] ( last-value.md ) | 排名相关 | ✔ | ✔ | |
54- | [ LAST] ( last.md ) | 排名相关 | ✔ | ✔ | |
55- | [ NTH_VALUE] ( nth-value.md ) | 排名相关 | ✔ | ✔ | |
56- | [ LEAD] ( lead.md ) | 排名相关 | ✔ | | |
57- | [ LAG] ( lag.md ) | 排名相关 | ✔ | | |
58-
59- ## 窗口语法 {/ * window-syntax * /}
15+ * ` 排名相关函数 ` :排名相关函数根据行的“排名”列出信息。例如,按每年利润降序排列商店,利润最高的商店将排名为1,利润第二高的商店将排名为2 ,依此类推。
16+
17+ * ` 窗口框架函数 ` :窗口框架函数允许您在窗口中的行子集上执行滚动操作,例如计算累计总和或移动平均值 。
18+
19+ ## 支持窗口的函数列表
20+
21+ 下表列出了所有窗口函数 。
22+
23+ | 函数名称 | 类别 | 窗口 | 窗口框架 | 备注 |
24+ | -----------------------------------------------------------------------| --------------| --------| ---- ----------| -------|
25+ | [ ARRAY_AGG] ( ../07-aggregate-functions/aggregate-array-agg.md ) | 通用 | ✔ | | |
26+ | [ AVG] ( ../07-aggregate-functions/aggregate-avg.md ) | 通用 | ✔ | ✔ | |
27+ | [ AVG_IF] ( ../07-aggregate-functions/aggregate-avg-if.md ) | 通用 | ✔ | ✔ | |
28+ | [ COUNT] ( ../07-aggregate-functions/aggregate-count.md ) | 通用 | ✔ | ✔ | |
29+ | [ COUNT_IF] ( ../07-aggregate-functions/aggregate-count-if.md ) | 通用 | ✔ | ✔ | |
30+ | [ COVAR_POP] ( ../07-aggregate-functions/aggregate-covar-pop.md ) | 通用 | ✔ | | |
31+ | [ COVAR_SAMP] ( ../07-aggregate-functions/aggregate-covar-samp.md ) | 通用 | ✔ | | |
32+ | [ MAX] ( ../07-aggregate-functions/aggregate-max.md ) | 通用 | ✔ | ✔ | |
33+ | [ MAX_IF] ( ../07-aggregate-functions/aggregate-max-if.md ) | 通用 | ✔ | ✔ | |
34+ | [ MIN] ( ../07-aggregate-functions/aggregate-min.md ) | 通用 | ✔ | ✔ | |
35+ | [ MIN_IF] ( ../07-aggregate-functions/aggregate-min-if.md ) | 通用 | ✔ | ✔ | |
36+ | [ STDDEV_POP] ( ../07-aggregate-functions/aggregate-stddev-pop.md ) | 通用 | ✔ | ✔ | |
37+ | [ STDDEV_SAMP] ( ../07-aggregate-functions/aggregate-stddev-samp.md ) | 通用 | ✔ | ✔ | |
38+ | [ MEDIAN] ( ../07-aggregate-functions/aggregate-median.md ) | 通用 | ✔ | ✔ | |
39+ | [ QUANTILE_CONT] ( ../07-aggregate-functions/aggregate-quantile-cont.md ) | 通用 | ✔ | ✔ | |
40+ | [ QUANTILE_DISC] ( ../07-aggregate-functions/aggregate-quantile-disc.md ) | 通用 | ✔ | ✔ | |
41+ | [ KURTOSIS] ( ../07-aggregate-functions/aggregate-kurtosis.md ) | 通用 | ✔ | ✔ | |
42+ | [ SKEWNESS] ( ../07-aggregate-functions/aggregate-skewness.md ) | 通用 | ✔ | ✔ | |
43+ | [ SUM] ( ../07-aggregate-functions/aggregate-sum.md ) | 通用 | ✔ | ✔ | |
44+ | [ SUM_IF] ( ../07-aggregate-functions/aggregate-sum-if.md ) | 通用 | ✔ | ✔ | |
45+ | [ CUME_DIST] ( cume-dist.md ) | 排名相关 | ✔ | | |
46+ | [ PERCENT_RANK] ( percent_rank.md ) | 排名相关 | ✔ | ✔ | |
47+ | [ DENSE_RANK] ( dense-rank.md ) | 排名相关 | ✔ | ✔ | |
48+ | [ RANK] ( rank.md ) | 排名相关 | ✔ | ✔ | |
49+ | [ ROW_NUMBER] ( row-number.md ) | 排名相关 | ✔ | | |
50+ | [ NTILE] ( ntile.md ) | 排名相关 | ✔ | | |
51+ | [ FIRST_VALUE] ( first-value.md ) | 排名相关 | ✔ | ✔ | |
52+ | [ FIRST] ( first.md ) | 排名相关 | ✔ | ✔ | |
53+ | [ LAST_VALUE] ( last-value.md ) | 排名相关 | ✔ | ✔ | |
54+ | [ LAST] ( last.md ) | 排名相关 | ✔ | ✔ | |
55+ | [ NTH_VALUE] ( nth-value.md ) | 排名相关 | ✔ | ✔ | |
56+ | [ LEAD] ( lead.md ) | 排名相关 | ✔ | | |
57+ | [ LAG] ( lag.md ) | 排名相关 | ✔ | | |
58+
59+ ## 窗口语法
6060
6161``` sql
6262< function> ( [ < arguments> ] ) OVER ( { named window | inline window } )
@@ -71,17 +71,17 @@ inline window ::=
7171```
7272` named window ` 是在 ` SELECT ` 语句的 ` WINDOW ` 子句中定义的窗口,例如:` SELECT a, SUM(a) OVER w FROM t WINDOW w AS ( inline window ) ` 。
7373
74- ` <function> ` 是其中之一 ([ 聚合函数] ( ../07-aggregate-functions/index.md ) 、排名函数、值函数)。
74+ ` <function> ` 是 ([ 聚合函数] ( ../07-aggregate-functions/index.md ) 、排名函数、值函数)之一 。
7575
76- ` OVER ` 子句指定该函数作为窗口函数使用 。
76+ ` OVER ` 子句指定该函数用作窗口函数 。
7777
78- ` PARTITION BY ` 子句允许将行分组为子组,例如按城市、按年等 。` PARTITION BY ` 子句是可选的。您可以分析整个行组而不将其分解为子组 。
78+ ` PARTITION BY ` 子句允许将行分组为子组,例如按城市、按年份等 。` PARTITION BY ` 子句是可选的。您可以在不将整个行组分解为子组的情况下进行分析 。
7979
80- ` ORDER BY ` 子句在窗口内对行进行排序 。
80+ ` ORDER BY ` 子句对窗口内的行进行排序 。
8181
82- ` window frame ` 子句指定窗口框架类型和窗口框架范围。` window frame ` 子句是可选的。如果您省略 ` window frame ` 子句,默认的窗口框架类型是 ` RANGE ` ,默认的窗口框架范围是 ` UNBOUNDED PRECEDING AND CURRENT ROW ` 。
82+ ` window frame ` 子句指定窗口框架类型和窗口框架范围。` window frame ` 子句是可选的。如果省略 ` window frame ` 子句,默认的窗口框架类型为 ` RANGE ` ,默认的窗口框架范围为 ` UNBOUNDED PRECEDING AND CURRENT ROW ` 。
8383
84- ## 窗口框架语法 {/ * window-frame-syntax * /}
84+ ## 窗口框架语法
8585
8686` window frame ` 可以是以下类型之一:
8787
@@ -102,7 +102,7 @@ slidingFrame ::=
102102 }
103103```
104104
105- ## 示例 {/ * examples * /}
105+ ## 示例
106106
107107** 创建表**
108108``` sql
@@ -130,9 +130,9 @@ INSERT INTO employees (employee_id, first_name, last_name, department, salary) V
130130 (10 , ' Ella' , ' Thomas' , ' IT' , 67000 );
131131```
132132
133- ** 示例1:按工资排名员工 **
133+ ** 示例 1:按工资对员工进行排名 **
134134
135- 在此示例中,我们使用 RANK() 函数根据工资降序对员工进行排名。最高工资将获得排名1,最低工资将获得最高排名数 。
135+ 在此示例中,我们使用 RANK() 函数按工资降序对员工进行排名。工资最高的员工将获得排名1,工资最低的员工将获得最高的排名号 。
136136``` sql
137137SELECT employee_id, first_name, last_name, department, salary, RANK() OVER (ORDER BY salary DESC ) AS rank
138138FROM employees;
@@ -153,9 +153,11 @@ FROM employees;
153153| 4 | Sara | Williams | Sales | 60000 | 9 |
154154| 9 | Sophia | Lee | Sales | 58000 | 10 |
155155
156- ** 示例2:计算每个部门的工资总额**
157156
158- 在此示例中,我们使用带有 PARTITION BY 的 SUM() 函数来计算每个部门的工资总额。每行将显示部门和该部门的工资总额。
157+
158+ ** 示例 2:计算每个部门的总工资**
159+
160+ 在此示例中,我们使用 SUM() 函数与 PARTITION BY 来计算每个部门的总工资。每行将显示部门及其总工资。
159161``` sql
160162SELECT department, SUM (salary) OVER (PARTITION BY department) AS total_salary
161163FROM employees;
@@ -176,9 +178,10 @@ FROM employees;
176178| Sales | 180000 |
177179| Sales | 180000 |
178180
179- ** 示例3:计算每个部门的工资累计总额**
180181
181- 在此示例中,我们使用带有累积窗口框架的 SUM() 函数来计算每个部门内的工资累计总额。累计总额是根据员工的工资按 employee_id 排序计算的。
182+ ** 示例 3:计算每个部门的工资累计总和**
183+
184+ 在此示例中,我们使用 SUM() 函数与累积窗口框架来计算每个部门内的工资累计总和。累计总和基于按 employee_id 排序的员工的工资。
182185``` sql
183186SELECT employee_id, first_name, last_name, department, salary,
184187 SUM (salary) OVER (PARTITION BY department ORDER BY employee_id
0 commit comments