合并列相同的表时处理重复数据

重复数据分为以下两种情况:

1、整行重复

2、关键列重复

 

在处理重复数据时,又有以下三种情况:

1、只保留相同记录的其中一条

2、只保留不为空的记录

3、去掉所有重复数据

举例

1【整行重复,去掉所有重复数据】

有 Excel 文件 600.xlsx,部分数据如下所示:

有 Excel 文件 100.xlsx,部分数据如下所示:

100.xlsx的数据是 600.xlsx 的子集

现在需要将 600.xlsx 中将出现在 100.xlsx 中的数据删除,结果如下:

编写 SPL 脚本:


A

1

=file("600.xlsx").xlsimport@t()

2

=file("100.xlsx").xlsimport@t()

3

=[A1,A2].merge@d()

4

=file("500.xlsx").xlsexport@t(A3)

A1和 A2   分别读取 600.xlsx 和 100.xlsx 的数据

A3   A1中去掉与 A2 重复的记录

A4  将 A3 的结果导出到 500.xlsx

 

2【关键列重复,只保留不为空的记录、只保留相同记录的其中一条】

有 Excel 文件 book1.xlsx,数据如下所示:

现在要去掉 sex 和 age 同时为空,并且只保留一条相同的记录,结果如下:

编写 SPL 脚本:


A

1

=file("book1.xlsx").xlsimport@t()

2

=A1.select(sex||age)

3

=A2.group@1(id,name,sex,age)

4

=file("result.xlsx").xlsexport@t(A3)

A1   读取Excel数据,选项 @t 表示首行是列标题

A2   去掉 sex 和 age 同时为空的记录

A3  只保留一条相同的记录

A4  结果导出至 result.xlsx