diff --git a/ch05: SQL高级处理.md b/ch05: SQL高级处理.md index 59805bf..a455243 100644 --- a/ch05: SQL高级处理.md +++ b/ch05: SQL高级处理.md @@ -11,16 +11,20 @@ 窗口函数的通用形式: ```sql -<窗口函数> OVER ([PARTITION BY <列名>] - ORDER BY <排序用列名>)   +<窗口函数> OVER ([ PARTITION BY <列名> ] + [ ORDER BY <排序用列名> ])   ``` [ ]中的内容可以省略。 窗口函数最关键的是搞明白关键字 **PARTITON BY** 和 **ORDER BY** 的作用。 -**PARTITON BY** 是用来分组,即选择要看哪个窗口,类似于 GROUP BY 子句的分组功能,但是 PARTITION BY 子句并不具备 GROUP BY 子句的汇总功能,并不会改变原始表中记录的行数。 +**PARTITON BY** 可选参数,是用来分组,即选择要看哪个窗口,类似于 GROUP BY 子句的分组功能,但是 PARTITION BY 子句并不具备 GROUP BY 子句的汇总功能,并不会改变原始表中记录的行数。 -**ORDER BY** 是用来排序,即决定窗口内,是按那种规则(字段)来排序的。 +**ORDER BY** 可选参数,是用来排序,即决定窗口内,是按那种规则(字段)来排序的。 + +**注意** + +虽然 **PARTITON BY** 和 **ORDER BY** 都是可选参数,但是两个参数不能同时没有(最少二选一)。不然, `<窗口函数> OVER( )` 这周用法没用实际意义。 举个栗子: