From 3b05b7349ffb5091e8d2b7a42653f75051cf136b Mon Sep 17 00:00:00 2001 From: Abby <78209557+abby-cyber@users.noreply.github.com> Date: Mon, 21 Nov 2022 19:00:56 +0800 Subject: [PATCH 1/9] Update group-by.md --- docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md index 0591c2c2dd..e3c0f902e6 100644 --- a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md +++ b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md @@ -33,6 +33,9 @@ nebula> MATCH (v:player)<-[:follow]-(:player) RETURN v.player.name AS Name, cou ``` `aggregation_function()`函数支持`avg()`、`sum()`、`max()`、`min()`、`count()`、`collect()`、`std()`。 +!!! note + + nGQL 语法同时兼容 openCypher 语法中 `Group BY` 的隐式用法。即当涉及聚合函数的时候,可隐式使用 `GROUP BY`,也就是不写出 `GROUP BY` 关键词也能起到聚合数据的作用。 ## 示例 ```ngql From 93cd2879844c413d2de5b5b6f5b171e72df94063 Mon Sep 17 00:00:00 2001 From: Abby <78209557+abby-cyber@users.noreply.github.com> Date: Tue, 22 Nov 2022 12:19:12 +0800 Subject: [PATCH 2/9] add example for group by to explain its implicit usage --- .../8.clauses-and-options/group-by.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md index e3c0f902e6..12cd221add 100644 --- a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md +++ b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md @@ -35,7 +35,23 @@ nebula> MATCH (v:player)<-[:follow]-(:player) RETURN v.player.name AS Name, cou !!! note - nGQL 语法同时兼容 openCypher 语法中 `Group BY` 的隐式用法。即当涉及聚合函数的时候,可隐式使用 `GROUP BY`,也就是不写出 `GROUP BY` 关键词也能起到聚合数据的作用。 + nGQL 语法同时兼容 openCypher 语法中 `GROUP BY` 的隐式用法。即当涉及聚合函数的时候,默认隐式使用 `GROUP BY`;如果不写出 `GROUP BY` 关键词,没有聚合函数的 YIELD 列也是被隐式地 `GROUP BY`。例如:查询 34 岁以上的球员中完全重叠服役的区间。 + + ```ngql + nebula> LOOKUP ON player WHERE player.age > 34 YIELD id(vertex) AS v | + GO FROM $-.v OVER serve YIELD serve.start_year AS start_year, serve.end_year AS end_year | + YIELD $-.start_year, $-.end_year, count(*) AS count | ORDER BY $-.count DESC | LIMIT 5 + +---------------+-------------+-------+ + | $-.start_year | $-.end_year | count | + +---------------+-------------+-------+ + | 2018 | 2019 | 3 | + | 1998 | 2004 | 2 | + | 2012 | 2013 | 2 | + | 2007 | 2012 | 2 | + | 2010 | 2011 | 2 | + +---------------+-------------+-------+ + ``` + ## 示例 ```ngql From 3dd3aea11dd0d5a6f595651cce659f399b121426 Mon Sep 17 00:00:00 2001 From: "abby.huang" <78209557+abby-cyber@users.noreply.github.com> Date: Tue, 22 Nov 2022 13:51:23 +0800 Subject: [PATCH 3/9] Update group-by.md --- docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md index 12cd221add..e4cf72dba8 100644 --- a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md +++ b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md @@ -35,7 +35,7 @@ nebula> MATCH (v:player)<-[:follow]-(:player) RETURN v.player.name AS Name, cou !!! note - nGQL 语法同时兼容 openCypher 语法中 `GROUP BY` 的隐式用法。即当涉及聚合函数的时候,默认隐式使用 `GROUP BY`;如果不写出 `GROUP BY` 关键词,没有聚合函数的 YIELD 列也是被隐式地 `GROUP BY`。例如:查询 34 岁以上的球员中完全重叠服役的区间。 + nGQL 语法同时兼容 openCypher 语法中 `GROUP BY` 的隐式用法。即当涉及聚合函数的时候,默认隐式使用 `GROUP BY`;如果不写出 `GROUP BY` 关键词,没有聚合函数的 YIELD 列也是被隐式地 `GROUP BY`。例如:查询 34 岁以上的球员中完全重叠服役的区间的语句如下。 ```ngql nebula> LOOKUP ON player WHERE player.age > 34 YIELD id(vertex) AS v | From 5eac9820736d60035ea2fedde6c123a866e347ca Mon Sep 17 00:00:00 2001 From: Abby <78209557+abby-cyber@users.noreply.github.com> Date: Tue, 22 Nov 2022 14:30:49 +0800 Subject: [PATCH 4/9] Update group-by.md --- .../8.clauses-and-options/group-by.md | 45 ++++++++++--------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md index 12cd221add..1f9e0fcaa8 100644 --- a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md +++ b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md @@ -33,26 +33,7 @@ nebula> MATCH (v:player)<-[:follow]-(:player) RETURN v.player.name AS Name, cou ``` `aggregation_function()`函数支持`avg()`、`sum()`、`max()`、`min()`、`count()`、`collect()`、`std()`。 -!!! note - - nGQL 语法同时兼容 openCypher 语法中 `GROUP BY` 的隐式用法。即当涉及聚合函数的时候,默认隐式使用 `GROUP BY`;如果不写出 `GROUP BY` 关键词,没有聚合函数的 YIELD 列也是被隐式地 `GROUP BY`。例如:查询 34 岁以上的球员中完全重叠服役的区间。 - - ```ngql - nebula> LOOKUP ON player WHERE player.age > 34 YIELD id(vertex) AS v | - GO FROM $-.v OVER serve YIELD serve.start_year AS start_year, serve.end_year AS end_year | - YIELD $-.start_year, $-.end_year, count(*) AS count | ORDER BY $-.count DESC | LIMIT 5 - +---------------+-------------+-------+ - | $-.start_year | $-.end_year | count | - +---------------+-------------+-------+ - | 2018 | 2019 | 3 | - | 1998 | 2004 | 2 | - | 2012 | 2013 | 2 | - | 2007 | 2012 | 2 | - | 2010 | 2011 | 2 | - +---------------+-------------+-------+ - ``` - -## 示例 +### 示例 ```ngql # 查找所有连接到 player100 的点,并根据他们的姓名进行分组,返回姓名的出现次数。 @@ -76,8 +57,6 @@ nebula> GO FROM "player100" OVER follow BIDIRECT \ +---------------------+------------+ ``` -## 用函数进行分组和计算 - ```ngql # 查找所有连接到 player100 的点,并根据起始点进行分组,返回 degree 的总和。 nebula> GO FROM "player100" OVER follow \ @@ -92,3 +71,25 @@ nebula> GO FROM "player100" OVER follow \ ``` `sum()`函数详情请参见[内置数学函数](../6.functions-and-expressions/1.math.md)。 + + +### 隐式分组 + +在 nGQL 语句中明确写出`GROUP BY`并起到分组字段作用的用法称为显示用法;而在 openCypher 语句中`GROUP BY`的用法是隐式的,即在语句中不用写出`GROUP BY`也可起到分组字段的作用。nGQL 语句中显示地`GROUP BY`用法与 openCypher 语句中的隐式地`GROUP BY`用法相同,并且 nGQL 语句兼容 openCypher 的用法,即也支持隐式地使用`GROUP BY`。有关`GROUP BY`的隐式用法,请参见[Implicit Group By](https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#grouping-keys)。 + +例如:查询 34 岁以上的球员中完全重叠服役的区间。 + +```ngql +nebula> LOOKUP ON player WHERE player.age > 34 YIELD id(vertex) AS v | + GO FROM $-.v OVER serve YIELD serve.start_year AS start_year, serve.end_year AS end_year | + YIELD $-.start_year, $-.end_year, count(*) AS count | ORDER BY $-.count DESC | LIMIT 5 ++---------------+-------------+-------+ +| $-.start_year | $-.end_year | count | ++---------------+-------------+-------+ +| 2018 | 2019 | 3 | +| 1998 | 2004 | 2 | +| 2012 | 2013 | 2 | +| 2007 | 2012 | 2 | +| 2010 | 2011 | 2 | ++---------------+-------------+-------+ +``` \ No newline at end of file From b4584441de9f75dd62a16e71dfa5a352a10c1b4a Mon Sep 17 00:00:00 2001 From: Abby <78209557+abby-cyber@users.noreply.github.com> Date: Tue, 22 Nov 2022 14:37:22 +0800 Subject: [PATCH 5/9] Update group-by.md --- docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md index 1f9e0fcaa8..32bcd96849 100644 --- a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md +++ b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md @@ -75,7 +75,7 @@ nebula> GO FROM "player100" OVER follow \ ### 隐式分组 -在 nGQL 语句中明确写出`GROUP BY`并起到分组字段作用的用法称为显示用法;而在 openCypher 语句中`GROUP BY`的用法是隐式的,即在语句中不用写出`GROUP BY`也可起到分组字段的作用。nGQL 语句中显示地`GROUP BY`用法与 openCypher 语句中的隐式地`GROUP BY`用法相同,并且 nGQL 语句兼容 openCypher 的用法,即也支持隐式地使用`GROUP BY`。有关`GROUP BY`的隐式用法,请参见[Implicit Group By](https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#grouping-keys)。 +在上述 nGQL 语句中明确写出`GROUP BY`并起到分组字段作用的用法称为`GROUP BY`显示用法;而在 openCypher 语句中`GROUP BY`的用法是隐式的,即在语句中不用写出`GROUP BY`也可起到分组字段的作用。nGQL 语句中显示地`GROUP BY`用法与 openCypher 语句中的隐式地`GROUP BY`用法相同,并且 nGQL 语句兼容 openCypher 的用法,即也支持隐式地使用`GROUP BY`。有关`GROUP BY`的隐式用法,请参见[Implicit Group By](https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#grouping-keys)。 例如:查询 34 岁以上的球员中完全重叠服役的区间。 From 120d349119a26c4653633d5f839c0163532b030c Mon Sep 17 00:00:00 2001 From: Abby <78209557+abby-cyber@users.noreply.github.com> Date: Tue, 22 Nov 2022 14:40:57 +0800 Subject: [PATCH 6/9] Update group-by.md --- docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md index 32bcd96849..a202e8fcfe 100644 --- a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md +++ b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md @@ -80,9 +80,10 @@ nebula> GO FROM "player100" OVER follow \ 例如:查询 34 岁以上的球员中完全重叠服役的区间。 ```ngql -nebula> LOOKUP ON player WHERE player.age > 34 YIELD id(vertex) AS v | - GO FROM $-.v OVER serve YIELD serve.start_year AS start_year, serve.end_year AS end_year | - YIELD $-.start_year, $-.end_year, count(*) AS count | ORDER BY $-.count DESC | LIMIT 5 +nebula> LOOKUP ON player WHERE player.age > 34 YIELD id(vertex) AS v | \ + GO FROM $-.v OVER serve YIELD serve.start_year AS start_year, serve.end_year AS end_year | \ + YIELD $-.start_year, $-.end_year, count(*) AS count | \ + ORDER BY $-.count DESC | LIMIT 5 +---------------+-------------+-------+ | $-.start_year | $-.end_year | count | +---------------+-------------+-------+ From 4a85fd7ae98ddafb58fd267e75f8444159486ef8 Mon Sep 17 00:00:00 2001 From: Abby <78209557+abby-cyber@users.noreply.github.com> Date: Tue, 22 Nov 2022 14:42:30 +0800 Subject: [PATCH 7/9] Update group-by.md --- docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md index a202e8fcfe..7c9323713f 100644 --- a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md +++ b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md @@ -83,7 +83,7 @@ nebula> GO FROM "player100" OVER follow \ nebula> LOOKUP ON player WHERE player.age > 34 YIELD id(vertex) AS v | \ GO FROM $-.v OVER serve YIELD serve.start_year AS start_year, serve.end_year AS end_year | \ YIELD $-.start_year, $-.end_year, count(*) AS count | \ - ORDER BY $-.count DESC | LIMIT 5 + ORDER BY $-.count DESC | LIMIT 5; +---------------+-------------+-------+ | $-.start_year | $-.end_year | count | +---------------+-------------+-------+ From 1b12f6928d8e548c94240dc04b015a858025f871 Mon Sep 17 00:00:00 2001 From: Abby <78209557+abby-cyber@users.noreply.github.com> Date: Tue, 22 Nov 2022 14:51:03 +0800 Subject: [PATCH 8/9] Update group-by.md --- docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md index 7c9323713f..c7d0f211b4 100644 --- a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md +++ b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md @@ -33,7 +33,7 @@ nebula> MATCH (v:player)<-[:follow]-(:player) RETURN v.player.name AS Name, cou ``` `aggregation_function()`函数支持`avg()`、`sum()`、`max()`、`min()`、`count()`、`collect()`、`std()`。 -### 示例 +## 示例 ```ngql # 查找所有连接到 player100 的点,并根据他们的姓名进行分组,返回姓名的出现次数。 @@ -73,7 +73,7 @@ nebula> GO FROM "player100" OVER follow \ `sum()`函数详情请参见[内置数学函数](../6.functions-and-expressions/1.math.md)。 -### 隐式分组 +## 隐式分组 在上述 nGQL 语句中明确写出`GROUP BY`并起到分组字段作用的用法称为`GROUP BY`显示用法;而在 openCypher 语句中`GROUP BY`的用法是隐式的,即在语句中不用写出`GROUP BY`也可起到分组字段的作用。nGQL 语句中显示地`GROUP BY`用法与 openCypher 语句中的隐式地`GROUP BY`用法相同,并且 nGQL 语句兼容 openCypher 的用法,即也支持隐式地使用`GROUP BY`。有关`GROUP BY`的隐式用法,请参见[Implicit Group By](https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#grouping-keys)。 From 6829e8355c47b078e8b2f9fdb8fe92905f870a90 Mon Sep 17 00:00:00 2001 From: Abby <78209557+abby-cyber@users.noreply.github.com> Date: Tue, 22 Nov 2022 16:16:46 +0800 Subject: [PATCH 9/9] Update group-by.md --- docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md index c7d0f211b4..66f0d7f5f3 100644 --- a/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md +++ b/docs-2.0/3.ngql-guide/8.clauses-and-options/group-by.md @@ -75,7 +75,7 @@ nebula> GO FROM "player100" OVER follow \ ## 隐式分组 -在上述 nGQL 语句中明确写出`GROUP BY`并起到分组字段作用的用法称为`GROUP BY`显示用法;而在 openCypher 语句中`GROUP BY`的用法是隐式的,即在语句中不用写出`GROUP BY`也可起到分组字段的作用。nGQL 语句中显示地`GROUP BY`用法与 openCypher 语句中的隐式地`GROUP BY`用法相同,并且 nGQL 语句兼容 openCypher 的用法,即也支持隐式地使用`GROUP BY`。有关`GROUP BY`的隐式用法,请参见[Implicit Group By](https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#grouping-keys)。 +在上述 nGQL 语句中明确写出`GROUP BY`并起到分组字段作用的用法称为`GROUP BY`显示用法;而在 openCypher 语句中`GROUP BY`的用法是隐式的,即在语句中不用写出`GROUP BY`也可起到分组字段的作用。nGQL 语句中显示地`GROUP BY`用法与 openCypher 语句中的隐式地`GROUP BY`用法相同,并且 nGQL 语句兼容 openCypher 的用法,即也支持隐式地使用`GROUP BY`。有关`GROUP BY`的隐式用法,请参见[how-to-make-group-by-in-a-cypher-query](https://stackoverflow.com/questions/52722671/how-to-make-group-by-in-a-cypher-query)。 例如:查询 34 岁以上的球员中完全重叠服役的区间。