From 9e5a388fad450567cce250237b72e38970b8c82f Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 18 Jul 2024 15:11:01 +0800 Subject: [PATCH] Apply suggestions from code review Co-authored-by: Grace Cai --- .../expressions-pushed-down.md | 2 +- functions-and-operators/window-functions.md | 24 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/functions-and-operators/expressions-pushed-down.md b/functions-and-operators/expressions-pushed-down.md index feada5a5c281..e7eaf868e634 100644 --- a/functions-and-operators/expressions-pushed-down.md +++ b/functions-and-operators/expressions-pushed-down.md @@ -12,7 +12,7 @@ TiFlash 也支持[本页](/tiflash/tiflash-supported-pushdown-calculations.md) > **注意:** > -> 当作为[窗口函数](/functions-and-operators/window-functions.md)使用时,聚合函数不支持下推。 +> 当作为[窗口函数](/functions-and-operators/window-functions.md)使用时,聚合函数不支持下推到 TiKV。 ## 已支持下推的表达式列表 diff --git a/functions-and-operators/window-functions.md b/functions-and-operators/window-functions.md index c3b3356a2f5d..eafcb2032b38 100644 --- a/functions-and-operators/window-functions.md +++ b/functions-and-operators/window-functions.md @@ -10,7 +10,7 @@ TiDB 中窗口函数的使用方法与 MySQL 8.0 基本一致,详情可参见 在 TiDB 中,你可以使用以下系统变量来控制窗口功能: -- [`tidb_enable_window_function`](/system-variables.md#tidb_enable_window_function):由于窗口函数会使用一些保留[关键字](/keywords.md),TiDB 提供了该系统变量用于关闭窗口函数。如果原先可以正常执行的 SQL 语句在升级 TiDB 后无法被解析语法,此时可以将 [`tidb_enable_window_function`](/system-variables.md#tidb_enable_window_function) 设置为 `OFF`。 +- [`tidb_enable_window_function`](/system-variables.md#tidb_enable_window_function):由于窗口函数会使用一些保留[关键字](/keywords.md),TiDB 提供了该系统变量用于关闭窗口函数功能。如果原先可以正常执行的 SQL 语句在升级 TiDB 后语法无法被解析,此时可以将 [`tidb_enable_window_function`](/system-variables.md#tidb_enable_window_function) 设置为 `OFF`。 - [`tidb_enable_pipelined_window_function`](/system-variables.md#tidb_enable_pipelined_window_function):你可以使用该系统变量禁用窗口函数的流水线执行算法。 - [`windowing_use_high_precision`](/system-variables.md#windowing_use_high_precision):你可以使用该变量为窗口函数关闭高精度模式。 @@ -34,7 +34,7 @@ TiDB 支持除 `GROUP_CONCAT()` 和 `APPROX_PERCENTILE()` 以外的所有 [`GROU ## [`CUME_DIST()`](https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html#function_cume-dist) -`CUME_DIST()` 计算数值在数值组中的累积分布。请注意,你需要在 `CUME_DIST()` 中使用 `ORDER BY` 子句对数值组排序。否则,此函数将不会返回预期值。 +`CUME_DIST()` 计算一个值在一组值中的累积分布。请注意,你需要在 `CUME_DIST()` 中使用 `ORDER BY` 子句对该组中的值进行排序。否则,此函数将不会返回预期值。 ```sql WITH RECURSIVE cte(n) AS ( @@ -68,7 +68,7 @@ FROM ## [`DENSE_RANK()`](https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html#function_dense-rank) -`DENSE_RANK()` 函数返回当前行的秩。它类似于 [`RANK()`](#rank),但不会在出现并列(具有相同值和顺序条件的行)时留下任何间隙。 +`DENSE_RANK()` 函数返回当前行的排名。它的作用类似于 [`RANK()`](#rank),但在处理具有相同值和排序条件的行时能够确保排名是连续的。 ```sql SELECT @@ -108,8 +108,8 @@ FROM ( 下面的示例使用了两个不同的窗口定义: -- `PARTITION BY n MOD 2 ORDER BY n` 将表 `a` 中的数据分为两组:`1, 3` 和`2, 4`。因此会返回 `1` 或 `2`,因为它们是这两组的第一个值。 -- `PARTITION BY n <= 2 ORDER BY n` 将表 `a` 中的数据分为两组:`1, 2` 和`3, 4`。因此,它返回`1`或`3`,取决于`n`属于哪一组。 +- `PARTITION BY n MOD 2 ORDER BY n` 将表 `a` 中的数据分为两组:`1, 3` 和 `2, 4`。因此会返回 `1` 或 `2`,因为它们是这两组的第一个值。 +- `PARTITION BY n <= 2 ORDER BY n` 将表 `a` 中的数据分为两组:`1, 2` 和 `3, 4`。因此,它会返回 `1` 或 `3`,取决于 `n` 属于哪一组。 ```sql SELECT @@ -143,9 +143,9 @@ ORDER BY ## [`LAG()`](https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html#function_lag) -函数 `LAG(expr [, num [, default]])` 返回当前行前 `num` 行的 `expr` 值。如果不存在该行,则返回 `default` 值。默认情况下,未指定时,`num` 为 `1`,`default` 为 `NULL`。 +函数 `LAG(expr [, num [, default]])` 返回当前行之前第 `num` 行的 `expr` 值。如果不存在该行,则返回 `default` 值。默认情况下,未指定时,`num` 为 `1`,`default` 为 `NULL`。 -在下面的示例中,由于未指定 `num`,`LAG(n)` 返回上一行中 `n` 的值。当 `n` 为 `1` 时,由于前一行不存在,且未指定 `default` 时,`LAG(1)` 返回 `NULL`。 +在下面的示例中,由于未指定 `num`,`LAG(n)` 返回上一行中 `n` 的值。当 `n` 为 `1` 时,由于上一行不存在,且未指定 `default` 值,`LAG(1)` 返回 `NULL`。 ```sql WITH RECURSIVE cte(n) AS ( @@ -228,9 +228,9 @@ ORDER BY ## [`LEAD()`](https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html#function_lead) -函数 `LEAD(expr [, num [,default]])` 返回当前行后 `num` 行的 `expr` 值。如果不存在该行,则返回 `default` 值。默认情况下,如果未指定 `num` 和`default`,`num` 和 `default`分别为 `1` 和 `NULL`。 +函数 `LEAD(expr [, num [,default]])` 返回当前行之后第 `num` 行的 `expr` 值。如果不存在该行,则返回 `default` 值。默认情况下,未指定时,`num` 为 `1`,`default` 为 `NULL`。 -在下面的示例中,由于未指定 `num`,`LEAD(n)` 返回当前行之后下一行中 `n` 的值。当 `n` 为 `10` 时,由于下一行不存在,且未指定 `default` 时,`LEAD(10)` 返回 `NULL`。 +在下面的示例中,由于未指定 `num`,`LEAD(n)` 返回当前行之后下一行中 `n` 的值。当 `n` 为 `10` 时,由于下一行不存在,且未指定 `default` 值,`LEAD(10)` 返回 `NULL`。 ```sql WITH RECURSIVE cte(n) AS ( @@ -319,7 +319,7 @@ ORDER BY ## [`NTILE()`](https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html#function_ntile) -`NTILE(n)` 函数将窗口分成 `n` 组,并返回数组的编号。 +`NTILE(n)` 函数将窗口划分为 `n` 个分组,并返回各行的分组编号。 ```sql WITH RECURSIVE cte(n) AS ( @@ -361,7 +361,7 @@ FROM ## [`PERCENT_RANK()`](https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html#function_percent-rank) -`PERCENT_RANK()` 函数返回一个介于 0 和 1 之间的数字,表示值小于当前窗口值的行的百分比。 +`PERCENT_RANK()` 函数返回一个介于 0 和 1 之间的数字,表示值小于当前行值的行的百分比。 ```sql SELECT @@ -398,7 +398,7 @@ FROM ( ## [`RANK()`](https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html#function_rank) -`RANK()` 函数类似于 [`DENSE_RANK()`](#dense_rank),但会在出现并列(具有相同值和排序条件的行)时留下间隙。这意味着它提供的是绝对排名。例如,排名 7 意味着有 6 行的排名较低。 +`RANK()` 函数的作用类似于 [`DENSE_RANK()`](#dense_rank),但在处理具有相同值和排序条件的行时返回的排名是不连续的。这意味着它提供的是绝对排名。例如,排名 7 意味着有 6 个行的排名更靠前。 ```sql SELECT