对齐

阅读(256) 标签: 对齐, 集合,

功能:

将数据按照指定方式对齐。

语法:

对齐 <对齐的计算式> [按照 <有序集合或其他表>] [用 <基准表达式>] [拼接列 {<原列名> [命名 <新列名>]}] [仅排序] [保留其他] [分区 <分区字段>]

参数:对齐的计算式  按照

这两个参数必须一起用。

参数对齐的计算式,焦点表中用于对齐的字段或表达式。必填,省略参数名。

参数按照,对齐的基准,可以是有序集合或其他表,是其他表时缺省用该表的主键列值做基准,无主键时用第1列的列值做基准,也可以用参数用显式指定基准表达式。必填,不可省略参数名。

注意事项:焦点表中有但参数按照中没有的值会被删除;参数按照中有但焦点表没有的值会插入缺失记录。其他字段为null。

示例:

EMPLOYEE表数据如下: 

EID

NAME

GENDER

DEPT

SALARY

1

Rebecca

F

R&D

7000

2

Ashley

F

Finance

11000

3

Rachel

F

Sales

9000

4

Emily

F

HR

7000

5

Ashley

F

R&D

16000

6

Matthew

M

Sales

11000

7

Alexis

F

Sales

9000

8

Megan

F

Marketing

11000

9

Victoria

F

HR

3000

10

Ryan

M

R&D

13000

对齐 GENDER 按照 ["M","F"]  //焦点表为EMPLOYEE表,将EMPLOYEE表用字段GENDER按照["M","F"]对齐,结果如下:

EID

NAME

GENDER

DEPT

SALARY

6

Matthew

M

1984-07-07

2005-07-07

10

Ryan

M

1976-03-12

2006-03-12

1

Rebecca

F

1974-11-20

2005-03-11

2

Ashley

F

1980-07-19

2008-03-16

3

Rachel

F

1970-12-17

2010-12-01

4

Emily

F

1985-03-07

2006-08-15

5

Ashley

F

1975-05-13

2004-07-30

7

Alexis

F

1972-08-16

2002-08-16

8

Megan

F

1979-04-19

1984-04-19

9

Victoria

F

1983-12-07

2009-12-07

DEPARTMENT表数据如下:

DEPT

MANAGER

Administration

1

Sales

3

Finance

4

HR

5

Marketing

6

对齐 DEPT 按照 DEPARTMENT  //焦点表为EMPLOYEE表,将EMPLOYEE表用字段DEPT按照DEPARTMENT表第1列的列值对齐,结果如下:

EID

NAME

GENDER

BIRTHDAY

HIREDATE

DEPT

SALARY

 

 

 

 

 

Administration

 

3

Rachel

F

1970-12-17

2010-12-01

Sales

9000

6

Matthew

M

1984-07-07

2005-07-07

Sales

11000

7

Alexis

F

1972-08-16

2002-08-16

Sales

9000

2

Ashley

F

1980-07-19

2008-03-16

Finance

11000

4

Emily

F

1985-03-07

2006-08-15

HR

7000

9

Victoria

F

1983-12-07

2009-12-07

HR

3000

8

Megan

F

1979-04-19

1984-04-19

Marketing

11000

解释:焦点表没有”Administration”,但比有序集合多了" R&D",按照参数的注意事项,要插入新记录,该记录Dept值是”Administration”,其他字段为null;同时要删掉" R&D"对应的记录。

参数:用 <基准表达式>

当参数按照是其他表时,用基准表达式指定作为对齐基准的列。缺省用主键列值做基准,无主键时用第1列的列值做基准。

可选,不能省略参数名。

示例:

对齐 DEPT按照 EMPLOYEE用 DEPT  // 焦点表为DEPARTMENT表,将DEPARTMENT表用字段DEPT按照EMPLOYEE的DEPT列值对齐,结果如下:

DEPT

MANAGER

R&D

 

Finance

4

Sales

3

HR

5

R&D

 

Sales

 

Sales

 

Marketing

6

HR

 

R&D

 

参数:拼接列

当参数按照是其他表时,将该表的其他列拼到焦点表的后面。

非必要参数;复合参数;参数名不能省略。本参数是复合参数,由原列名和命名组成,多对表示拼接多个列。

子参数原列名是其他表中的一个列名(包括序号列#),将拼到焦点表上。必填,省略参数名。

子参数命名是将原列名拼接到焦点表之后的新列名。可选。不可省略参数名,缺省保持原名。

示例:

对齐 DEPT 按照 EMPLOYEE 用 DEPT 拼接列 NAME 命名 M_NAME  //将DEPARTMENT表(焦点表)的DEPT字段按照EMPLOYEE表的DEPT列对齐,拼上EMPLOYEE表的NAME字段,并将NAME字段改名为M_NAME,结果如下:

DEPT

MANAGER

M_NAME

R&D

 

Rebecca

Finance

4

Ashley

Sales

3

Rachel

HR

5

Emily

R&D

 

Ashley

Sales

 

Matthew

Sales

 

Alexis

Marketing

6

Megan

HR

 

Victoria

R&D

 

Ryan

 参数:仅排序

如果参数按照中有而焦点表没有的字段值,不插入缺失记录,值排序。缺省会插入缺失记录。

可选,不可省略参数名。

示例:

对齐 DEPT 按照  ["Sales","Administration","HR"]  仅排序  //将EMPLOYEE表(焦点表)用DEPT字段按照["Sales","Administration","HR"]对齐,仅排序,不要补充缺失的记录,结果如下:

EID

NAME

GENDER

BIRTHDAY

HIREDATE

DEPT

SALARY

3

Rachel

F

1970-12-17

2010-12-01

Sales

9000

6

Matthew

M

1984-07-07

2005-07-07

Sales

11000

7

Alexis

F

1972-08-16

2002-08-16

Sales

9000

4

Emily

F

1985-03-07

2006-08-15

HR

7000

9

Victoria

F

1983-12-07

2009-12-07

HR

3000

参数:保留其他

如果焦点表中有参数按照没有的字段值,不删除无法对齐的记录,而是把这些记录排在焦点表的最后。缺省会删掉这些记录。

可选,不可省略参数名。

示例:

对齐 DEPT 按照  ["Sales","Administration","HR"]  仅排序 ; 保留其它  //将EMPLOYEE表(焦点表)用DEPT字段按照["Sales","Administration","HR"]对齐,仅排序,不要补充缺失的记录,保留员工表中无法对齐的记录,结果如下:

EID

NAME

GENDER

BIRTHDAY

HIREDATE

DEPT

SALARY

3

Rachel

F

1970-12-17

2010-12-01

Sales

9000

6

Matthew

M

1984-07-07

2005-07-07

Sales

11000

7

Alexis

F

1972-08-16

2002-08-16

Sales

9000

4

Emily

F

1985-03-07

2006-08-15

HR

7000

9

Victoria

F

1983-12-07

2009-12-07

HR

3000

1

Rebecca

F

1974-11-20

2005-03-11

R&D

7000

2

Ashley

F

1980-07-19

2008-03-16

Finance

11000

5

Ashley

F

1975-05-13

2004-07-30

R&D

16000

8

Megan

F

1979-04-19

1984-04-19

Marketing

11000

10

Ryan

M

1976-03-12

2006-03-12

R&D

13000

参数:分区

按分区进行对齐,即将各分区的记录分别对齐相同的基准,概念上类似SQL的PARTITION BY。

可选,不可省略参数名。

示例:

对齐 DEPT 按照  ["Sales","Administration","HR"]  分区 GENDER  //将EMPLOYEE表(焦点表)的每个性别的记录,用DEPT字段按照集合["Sales","Administration","HR"]对齐,结果如下:

EID

NAME

GENDER

BIRTHDAY

HIREDATE

DEPT

SALARY

3

Rachel

F

1970-12-17

2010-12-01

Sales

9000

7

Alexis

F

1972-08-16

2002-08-16

Sales

9000

 

 

F

 

 

Administration

 

4

Emily

F

1985-03-07

2006-08-15

HR

7000

9

Victoria

F

1983-12-07

2009-12-07

HR

3000

6

Matthew

M

1984-07-07

2005-07-07

Sales

11000

 

 

M

 

 

Administration

 

 

 

M

 

 

HR