Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🌐 Add LLM Translations #1667

Merged
merged 1 commit into from
Feb 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ title: CUME_DIST
---
import FunctionDescription from '@site/src/components/FunctionDescription';

<FunctionDescription description="引入版本: v1.2.7"/>
<FunctionDescription description="引入版本v1.2.7"/>

返回一组值中给定值的累积分布。它计算值小于或等于指定值的行数占总行数的比例。请注意,结果值介于0和1之间(含0和1)
返回一组值中给定值的累积分布。它计算小于或等于指定值的行数占总行数的比例。请注意,结果值介于 0 和 1 之间,包括 0 和 1

另请参阅: [PERCENT_RANK](percent_rank.md)
另请参阅[PERCENT_RANK](percent_rank.md)

## 语法

Expand All @@ -20,7 +20,7 @@ CUME_DIST() OVER (

## 示例

此示例检索学生的姓名、分数、年级以及使用CUME_DIST()窗口函数在每个年级内的累积分布值(cume_dist_val)。
本示例使用 CUME_DIST() 窗口函数获取每个年级中学生的姓名、分数、年级以及累积分布值(cume_dist_val)。

```sql
CREATE TABLE students (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
title: DENSE_RANK
---

返回一组值中某个值的排名,排名中没有间隔
返回一组值中某个值的排名,且排名之间没有间隔

排名值从1开始,并按顺序递增
排名值从1开始,依次递增

如果两个值相同,它们具有相同的排名
如果两个值相同,则它们具有相同的排名

## 语法

Expand Down Expand Up @@ -37,7 +37,7 @@ INSERT INTO employees (employee_id, first_name, last_name, department, salary) V
(5, 'Tom', 'Brown', 'HR', 75000);
```

**使用 DENSE_RANK 计算每个部门的工资总额**
**使用 DENSE_RANK 计算每个部门的总工资**

```sql
SELECT
Expand All @@ -56,5 +56,4 @@ GROUP BY
|------------|--------------|------------|
| IT | 172000 | 1 |
| HR | 160000 | 2 |
| Sales | 77000 | 3 |

| Sales | 77000 | 3 |
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ FIRST_VALUE (expression) [ { IGNORE | RESPECT } NULLS ] OVER ([PARTITION BY part
```

- `[ { IGNORE | RESPECT } NULLS ]`: 控制窗口函数中如何处理 NULL 值。
- 默认情况下,使用 `RESPECT NULLS`,表示 NULL 值包含在计算中并影响结果
- 当设置为 `IGNORE NULLS` 时,NULL 值将被排除在考虑范围之外,函数仅对非 NULL 值进行操作。
- 如果窗口框架中的所有值都为 NULL,即使指定了 `IGNORE NULLS`,函数也会返回 NULL。
- 默认情况下,使用 `RESPECT NULLS`,意味着 NULL 值会被包含在计算中并影响结果
- 当设置为 `IGNORE NULLS` 时,NULL 值会被排除在考虑范围之外,函数仅对非 NULL 值进行操作。
- 如果窗口框架中的所有值都是 NULL,即使指定了 `IGNORE NULLS`,函数也会返回 NULL。

- 有关窗口框架的语法,请参见 [Window Frame Syntax](index.md#window-frame-syntax)。
- 关于窗口框架的语法,请参阅 [Window Frame Syntax](index.md#window-frame-syntax)。

## 示例

Expand Down Expand Up @@ -60,7 +60,7 @@ employee_id | first_name | last_name | salary | highest_salary_first_name

```

此示例使用 `IGNORE NULLS` 选项从窗口框架中排除 NULL 值:
以下示例使用 `IGNORE NULLS` 选项从窗口框架中排除 NULL 值:

```sql
CREATE or replace TABLE example AS SELECT * FROM (VALUES
Expand Down
127 changes: 65 additions & 62 deletions docs/cn/sql-reference/20-sql-functions/08-window-functions/index.md
Original file line number Diff line number Diff line change
@@ -1,62 +1,62 @@
请粘贴需要翻译的Markdown或JSON内容,我将按照您提供的规则进行翻译
已理解您的要求,我将严格按照您提供的规则进行翻译。请提供需要翻译的Markdown或JSON内容,我会立即开始翻译工作

---
title: '窗口函数'
---

## 概述 {/*overview*/}
## 概述

窗口函数操作于一组相关行(称为“窗口”)。
窗口函数对一组相关的行(“窗口”)进行操作

对于每个输入行,窗口函数返回一个依赖于特定行及窗口中其他行值的输出行
对于每个输入行,窗口函数返回一个输出行,该输出行取决于传递给函数的特定行以及窗口中其他行的值

主要有两种类型的顺序敏感窗口函数:

* `排名相关函数`:排名相关函数根据行的“排名”列出信息。例如,按年度利润降序排列商店,利润最高的商店排名为1,次高的商店排名为2,依此类推。

* `窗口框架函数`:窗口框架函数使您能够在窗口中的子集行上执行滚动操作,例如计算运行总计或移动平均值

## 支持窗口的函数列表 {/*list-of-functions-that-support-windows*/}

以下列表展示了所有支持窗口的函数

| 函数名称 | 类别 | 窗口 | 窗口框架 | 备注 |
|-------------------------------------------------------------------------|--------------|--------|----------|-------|
| [ARRAY_AGG](../07-aggregate-functions/aggregate-array-agg.md) | 通用 | ✔ | | |
| [AVG](../07-aggregate-functions/aggregate-avg.md) | 通用 | ✔ | ✔ | |
| [AVG_IF](../07-aggregate-functions/aggregate-avg-if.md) | 通用 | ✔ | ✔ | |
| [COUNT](../07-aggregate-functions/aggregate-count.md) | 通用 | ✔ | ✔ | |
| [COUNT_IF](../07-aggregate-functions/aggregate-count-if.md) | 通用 | ✔ | ✔ | |
| [COVAR_POP](../07-aggregate-functions/aggregate-covar-pop.md) | 通用 | ✔ | | |
| [COVAR_SAMP](../07-aggregate-functions/aggregate-covar-samp.md) | 通用 | ✔ | | |
| [MAX](../07-aggregate-functions/aggregate-max.md) | 通用 | ✔ | ✔ | |
| [MAX_IF](../07-aggregate-functions/aggregate-max-if.md) | 通用 | ✔ | ✔ | |
| [MIN](../07-aggregate-functions/aggregate-min.md) | 通用 | ✔ | ✔ | |
| [MIN_IF](../07-aggregate-functions/aggregate-min-if.md) | 通用 | ✔ | ✔ | |
| [STDDEV_POP](../07-aggregate-functions/aggregate-stddev-pop.md) | 通用 | ✔ | ✔ | |
| [STDDEV_SAMP](../07-aggregate-functions/aggregate-stddev-samp.md) | 通用 | ✔ | ✔ | |
| [MEDIAN](../07-aggregate-functions/aggregate-median.md) | 通用 | ✔ | ✔ | |
| [QUANTILE_CONT](../07-aggregate-functions/aggregate-quantile-cont.md) | 通用 | ✔ | ✔ | |
| [QUANTILE_DISC](../07-aggregate-functions/aggregate-quantile-disc.md) | 通用 | ✔ | ✔ | |
| [KURTOSIS](../07-aggregate-functions/aggregate-kurtosis.md) | 通用 | ✔ | ✔ | |
| [SKEWNESS](../07-aggregate-functions/aggregate-skewness.md) | 通用 | ✔ | ✔ | |
| [SUM](../07-aggregate-functions/aggregate-sum.md) | 通用 | ✔ | ✔ | |
| [SUM_IF](../07-aggregate-functions/aggregate-sum-if.md) | 通用 | ✔ | ✔ | |
| [CUME_DIST](cume-dist.md) | 排名相关 | ✔ | | |
| [PERCENT_RANK](percent_rank.md) | 排名相关 | ✔ | ✔ | |
| [DENSE_RANK](dense-rank.md) | 排名相关 | ✔ | ✔ | |
| [RANK](rank.md) | 排名相关 | ✔ | ✔ | |
| [ROW_NUMBER](row-number.md) | 排名相关 | ✔ | | |
| [NTILE](ntile.md) | 排名相关 | ✔ | | |
| [FIRST_VALUE](first-value.md) | 排名相关 | ✔ | ✔ | |
| [FIRST](first.md) | 排名相关 | ✔ | ✔ | |
| [LAST_VALUE](last-value.md) | 排名相关 | ✔ | ✔ | |
| [LAST](last.md) | 排名相关 | ✔ | ✔ | |
| [NTH_VALUE](nth-value.md) | 排名相关 | ✔ | ✔ | |
| [LEAD](lead.md) | 排名相关 | | | |
| [LAG](lag.md) | 排名相关 | | | |

## 窗口语法 {/*window-syntax*/}
* `排名相关函数`:排名相关函数根据行的“排名”列出信息。例如,按每年利润降序排列商店,利润最高的商店将排名为1,利润第二高的商店将排名为2,依此类推。

* `窗口框架函数`:窗口框架函数允许您在窗口中的行子集上执行滚动操作,例如计算累计总和或移动平均值

## 支持窗口的函数列表

下表列出了所有窗口函数

| 函数名称 | 类别 | 窗口 | 窗口框架 | 备注 |
|-----------------------------------------------------------------------|--------------|--------|--------------|-------|
| [ARRAY_AGG](../07-aggregate-functions/aggregate-array-agg.md) | 通用 | ✔ | | |
| [AVG](../07-aggregate-functions/aggregate-avg.md) | 通用 | ✔ | ✔ | |
| [AVG_IF](../07-aggregate-functions/aggregate-avg-if.md) | 通用 | ✔ | ✔ | |
| [COUNT](../07-aggregate-functions/aggregate-count.md) | 通用 | ✔ | ✔ | |
| [COUNT_IF](../07-aggregate-functions/aggregate-count-if.md) | 通用 | ✔ | ✔ | |
| [COVAR_POP](../07-aggregate-functions/aggregate-covar-pop.md) | 通用 | ✔ | | |
| [COVAR_SAMP](../07-aggregate-functions/aggregate-covar-samp.md) | 通用 | ✔ | | |
| [MAX](../07-aggregate-functions/aggregate-max.md) | 通用 | ✔ | ✔ | |
| [MAX_IF](../07-aggregate-functions/aggregate-max-if.md) | 通用 | ✔ | ✔ | |
| [MIN](../07-aggregate-functions/aggregate-min.md) | 通用 | ✔ | ✔ | |
| [MIN_IF](../07-aggregate-functions/aggregate-min-if.md) | 通用 | ✔ | ✔ | |
| [STDDEV_POP](../07-aggregate-functions/aggregate-stddev-pop.md) | 通用 | ✔ | ✔ | |
| [STDDEV_SAMP](../07-aggregate-functions/aggregate-stddev-samp.md) | 通用 | ✔ | ✔ | |
| [MEDIAN](../07-aggregate-functions/aggregate-median.md) | 通用 | ✔ | ✔ | |
| [QUANTILE_CONT](../07-aggregate-functions/aggregate-quantile-cont.md) | 通用 | ✔ | ✔ | |
| [QUANTILE_DISC](../07-aggregate-functions/aggregate-quantile-disc.md) | 通用 | ✔ | ✔ | |
| [KURTOSIS](../07-aggregate-functions/aggregate-kurtosis.md) | 通用 | ✔ | ✔ | |
| [SKEWNESS](../07-aggregate-functions/aggregate-skewness.md) | 通用 | ✔ | ✔ | |
| [SUM](../07-aggregate-functions/aggregate-sum.md) | 通用 | ✔ | ✔ | |
| [SUM_IF](../07-aggregate-functions/aggregate-sum-if.md) | 通用 | ✔ | ✔ | |
| [CUME_DIST](cume-dist.md) | 排名相关 | ✔ | | |
| [PERCENT_RANK](percent_rank.md) | 排名相关 | ✔ | ✔ | |
| [DENSE_RANK](dense-rank.md) | 排名相关 | ✔ | ✔ | |
| [RANK](rank.md) | 排名相关 | ✔ | ✔ | |
| [ROW_NUMBER](row-number.md) | 排名相关 | ✔ | | |
| [NTILE](ntile.md) | 排名相关 | ✔ | | |
| [FIRST_VALUE](first-value.md) | 排名相关 | ✔ | ✔ | |
| [FIRST](first.md) | 排名相关 | ✔ | ✔ | |
| [LAST_VALUE](last-value.md) | 排名相关 | ✔ | ✔ | |
| [LAST](last.md) | 排名相关 | ✔ | ✔ | |
| [NTH_VALUE](nth-value.md) | 排名相关 | ✔ | ✔ | |
| [LEAD](lead.md) | 排名相关 | ✔ | | |
| [LAG](lag.md) | 排名相关 | ✔ | | |

## 窗口语法

```sql
<function> ( [ <arguments> ] ) OVER ( { named window | inline window } )
Expand All @@ -71,17 +71,17 @@ inline window ::=
```
`named window` 是在 `SELECT` 语句的 `WINDOW` 子句中定义的窗口,例如:`SELECT a, SUM(a) OVER w FROM t WINDOW w AS ( inline window )`。

`<function>` 是其中之一([聚合函数](../07-aggregate-functions/index.md)、排名函数、值函数)。
`<function>` ([聚合函数](../07-aggregate-functions/index.md)、排名函数、值函数)之一

`OVER` 子句指定该函数作为窗口函数使用
`OVER` 子句指定该函数用作窗口函数

`PARTITION BY` 子句允许将行分组为子组,例如按城市、按年等。`PARTITION BY` 子句是可选的。您可以分析整个行组而不将其分解为子组
`PARTITION BY` 子句允许将行分组为子组,例如按城市、按年份等。`PARTITION BY` 子句是可选的。您可以在不将整个行组分解为子组的情况下进行分析

`ORDER BY` 子句在窗口内对行进行排序
`ORDER BY` 子句对窗口内的行进行排序

`window frame` 子句指定窗口框架类型和窗口框架范围。`window frame` 子句是可选的。如果您省略 `window frame` 子句,默认的窗口框架类型是 `RANGE`,默认的窗口框架范围是 `UNBOUNDED PRECEDING AND CURRENT ROW`。
`window frame` 子句指定窗口框架类型和窗口框架范围。`window frame` 子句是可选的。如果省略 `window frame` 子句,默认的窗口框架类型为 `RANGE`,默认的窗口框架范围为 `UNBOUNDED PRECEDING AND CURRENT ROW`。

## 窗口框架语法 {/*window-frame-syntax*/}
## 窗口框架语法

`window frame` 可以是以下类型之一:

Expand All @@ -102,7 +102,7 @@ slidingFrame ::=
}
```

## 示例 {/*examples*/}
## 示例

**创建表**
```sql
Expand Down Expand Up @@ -130,9 +130,9 @@ INSERT INTO employees (employee_id, first_name, last_name, department, salary) V
(10, 'Ella', 'Thomas', 'IT', 67000);
```

**示例1:按工资排名员工**
**示例 1:按工资对员工进行排名**

在此示例中,我们使用 RANK() 函数根据工资降序对员工进行排名。最高工资将获得排名1,最低工资将获得最高排名数
在此示例中,我们使用 RANK() 函数按工资降序对员工进行排名。工资最高的员工将获得排名1,工资最低的员工将获得最高的排名号
```sql
SELECT employee_id, first_name, last_name, department, salary, RANK() OVER (ORDER BY salary DESC) AS rank
FROM employees;
Expand All @@ -153,9 +153,11 @@ FROM employees;
| 4 | Sara | Williams | Sales | 60000 | 9 |
| 9 | Sophia | Lee | Sales | 58000 | 10 |

**示例2:计算每个部门的工资总额**

在此示例中,我们使用带有 PARTITION BY 的 SUM() 函数来计算每个部门的工资总额。每行将显示部门和该部门的工资总额。

**示例 2:计算每个部门的总工资**

在此示例中,我们使用 SUM() 函数与 PARTITION BY 来计算每个部门的总工资。每行将显示部门及其总工资。
```sql
SELECT department, SUM(salary) OVER (PARTITION BY department) AS total_salary
FROM employees;
Expand All @@ -176,9 +178,10 @@ FROM employees;
| Sales | 180000 |
| Sales | 180000 |

**示例3:计算每个部门的工资累计总额**

在此示例中,我们使用带有累积窗口框架的 SUM() 函数来计算每个部门内的工资累计总额。累计总额是根据员工的工资按 employee_id 排序计算的。
**示例 3:计算每个部门的工资累计总和**

在此示例中,我们使用 SUM() 函数与累积窗口框架来计算每个部门内的工资累计总和。累计总和基于按 employee_id 排序的员工的工资。
```sql
SELECT employee_id, first_name, last_name, department, salary,
SUM(salary) OVER (PARTITION BY department ORDER BY employee_id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,22 @@ title: LAG

import FunctionDescription from '@site/src/components/FunctionDescription';

<FunctionDescription description="引入或更新: v1.2.45"/>
<FunctionDescription description="引入或更新于:v1.2.45"/>

LAG 允许您访问同一结果集中前一行的列值。它通常用于根据指定的排序检索前一行的列值
LAG 允许您访问同一结果集中前一行中某列的值。它通常用于根据指定的排序检索前一行中某列的值

另请参阅: [LEAD](lead.md)
另请参阅[LEAD](lead.md)

## 语法

```sql
LAG(expression [, offset [, default]]) OVER (PARTITION BY partition_expression ORDER BY sort_expression)
```

- *offset*: 指定在分区中相对于当前行向前(LEAD)或向后(LAG)的行数,以检索值。默认为 1。
> 注意,设置负偏移量与使用 [LEAD](lead.md) 函数效果相同
- *offset*: 指定在当前行之前(LAG)或之后(LEAD)的行数,以从分区中检索值。默认为 1。
> 请注意,设置负偏移量与使用 [LEAD](lead.md) 函数具有相同的效果

- *default*: 指定当 LEAD 或 LAG 函数因偏移量超出分区边界而无法获取值时返回的默认值。默认为 NULL。
- *default*: 指定当 LEAD 或 LAG 函数由于偏移量超出分区边界而无法获取值时返回的值。默认为 NULL。

## 示例

Expand Down
Loading