分段

阅读(328) 标签: 分段, 条件, 计算式,

功能:

按顺序将记录分段。

语法:

分段 [<固定条件针对的计算式>] [固定条件或记录数] [<数量>] [条件 <条件式>] [分区 <分区列>] [命名 <新列名>]

规则:

本功能的作用是按顺序将记录分段,赋予递增的组号(从1开始),条件成立时组号递增,不成立时组号不变。

支持以下三种条件类型:

第1种,固定条件,对应参数固定条件或记录数的枚举值:变化、不变、变大、未变大、变小、未变小,这6个枚举值属于"固定条件"。

第2种,按记录数分组,对应参数固定条件或记录数的枚举值:总共、每隔,这2个枚举值属于"固定记录数"。

总共:将记录的总数量大致均分为M组,每组的组号相同,因为无法保证整除,所以是大致均分。比如10条记录总共分4组,组号依次是[1,1,1,2,2,2,3,3,3,4];

每隔:每隔N条记录分一组,每组的组号相同,最后一组可能不足N条。

第3种,任意条件式,对应参数条件 <条件式>。

参数:固定条件针对的计算式

对应第1种条件所针对的计算式,最简单的计算式是单列。

可选,参数名省略。本参数不支持跨行计算和聚合计算。

示例:

股票股价表已按日期排序,数据内容如下:

日期

收盘价

2021-01-01

10.2

2021-01-02

11

2021-01-03

12.1

2021-01-04

11.3

2021-01-05

9.2

2021-01-07

11

2021-01-08

9.1

分段 收盘价; 变小; 命名 上涨标志  //收盘价下跌时组号+1,同组内为连续上涨执行结果,结果表如下:

日期

收盘价

上涨标志

2021-01-01

10.2

1

2021-01-02

11

1

2021-01-03

12.1

1

2021-01-04

11.3

2

2021-01-05

9.2

3

2021-01-07

11

3

2021-01-08

9.1

4

分析:日期2021-01-01至2021-01-03的记录的上涨标志(组号)相同,这组记录共3条,说明连续上涨3天。

参数:固定条件或记录数

对应第1种条件固定条件和第2种条件按记录数分组。

可选,参数名省略,枚举类型。

示例:分段 月份; 不变; 命名 标志  // 月份相同时组号+1,月份变化时组号不变。

第2种条件按记录数分组,注意此时不要参数固定条件针对的计算式,但必须要参数数量。

示例:

股票股价表已按日期排序,数据内容如下:

日期

收盘价

2021-01-01

10.2

2021-01-02

11

2021-01-03

12.1

2021-01-04

11.3

2021-01-05

9.2

2021-01-07

11

2021-01-08

9.1

分段 每隔; 3; 命名 组号  // 每3个工作日为一组,向新字段"组号"填入递增的组号,结果如下:

日期

收盘价

组号

2021-01-01

10.2

1

2021-01-02

11

1

2021-01-03

12.1

1

2021-01-04

11.3

2

2021-01-05

9.2

2

2021-01-07

11

2

2021-01-08

9.1

3

参数:数量

当参数固定条件或记录数的枚举值为总共和每隔时,需要用本参数指定这两个枚举值对应的总组数和组内成员数。

可选,参数名省略,整数类型。

参数:条件 <条件式>

在第1种条件固定条件和第2种条件按记录数量分组满足不了的情况下,需要用第3种条件任意条件式来计算分段。这种情况下不需要使用前3个参数。

可选,不可省略参数名。本参数支持跨行计算和聚合计算。

示例:

分段 条件 收盘价<收盘价[-1]; 命名 上涨标志  // 收盘价下跌时组号+1,否则组号保持。本例的条件式简单,可以用固定条件代替,等价于语句:分段 收盘价; 变小; 命名 上涨标志 。

分段 条件 (月份 <> 3); 命名 编号  //给新列"编号"从1开始赋值,当条件是"月份<>3"时编号递增,否则编号不变。

参数:分区

按分区计算分段号,各区之间互不影响,概念上类似SQL的PARTITION BY。

可选,不可省略参数名。

参数:命名 <新列名>

新列名,组号将赋值给新列。

必填,不可省略参数名。