This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 4b11e3f100c Fix rewrite document (#23590)
4b11e3f100c is described below

commit 4b11e3f100c9c2ba0753d072f0717e42cc4266c8
Author: ZhangCheng <flyin...@outlook.com>
AuthorDate: Tue Jan 17 08:11:18 2023 +0800

    Fix rewrite document (#23590)
---
 docs/document/content/reference/sharding/rewrite.cn.md | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/docs/document/content/reference/sharding/rewrite.cn.md 
b/docs/document/content/reference/sharding/rewrite.cn.md
index 1e98e526b0d..1ab9755e213 100644
--- a/docs/document/content/reference/sharding/rewrite.cn.md
+++ b/docs/document/content/reference/sharding/rewrite.cn.md
@@ -126,7 +126,7 @@ SELECT o.* FROM t_order o, t_order_item i WHERE 
o.order_id=i.order_id ORDER BY u
 SELECT o.*, order_item_id AS ORDER_BY_DERIVED_0 FROM t_order o, t_order_item i 
WHERE o.order_id=i.order_id ORDER BY user_id, order_item_id;
 ```
 
-补列的另一种情况是使用 AVG 聚合函数。在分布式的场景中,使用 avg1 + avg2 + avg3 / 3 计算平均值并不正确,需要改写为 (sum1 
+ sum2 + sum3)  / (count1 + count2 + count3)。
+补列的另一种情况是使用 AVG 聚合函数。在分布式的场景中,使用 (avg1 + avg2 + avg3) / 3 计算平均值并不正确,需要改写为 
(sum1 + sum2 + sum3) / (count1 + count2 + count3)。
 这就需要将包含 AVG 的 SQL 改写为 SUM 和 COUNT,并在结果归并时重新计算平均值。例如以下 SQL:
 
 ```sql
@@ -207,15 +207,15 @@ SELECT score FROM t_score ORDER BY score DESC LIMIT 1, 2;
 举例说明,如下 SQL:
 
 ```sql
-INSERT INTO t_order (order_id, xxx) VALUES (1, 'xxx'), (2, 'xxx'), (3, 'xxx');
+INSERT INTO t_order (order_id, xxx) VALUES (1, 'xxx'), (2, 'xxx'), (3, 'xxx');
 ```
 
 假设数据库仍然是按照 order_id 的奇偶值分为两片的,仅将这条 SQL 中的表名进行修改,然后发送至数据库完成 SQL 的执行 
,则两个分片都会写入相同的记录。
 虽然只有符合分片查询条件的数据才能够被查询语句取出,但存在冗余数据的实现方案并不合理。因此需要将 SQL 改写为:
 
 ```sql
-INSERT INTO t_order_0 (order_id, xxx) VALUES (2, 'xxx');
-INSERT INTO t_order_1 (order_id, xxx) VALUES (1, 'xxx'), (3, 'xxx');
+INSERT INTO t_order_0 (order_id, xxx) VALUES (2, 'xxx');
+INSERT INTO t_order_1 (order_id, xxx) VALUES (1, 'xxx'), (3, 'xxx');
 ```
 
 使用 IN 的查询与批量插入的情况相似,不过 IN 操作并不会导致数据查询结果错误。通过对 IN 查询的改写,可以进一步的提升查询性能。如以下 SQL:

Reply via email to