我在不同的数据库中有2个用户表,我希望从这些表中只获得唯一的行。
在以下示例中,我需要没有重复名称的电子邮件列表。
我正在使用Pentaho DI Kettle。
来自数据库1的表用户
ID | Name | Email
--- | ----------- | -------------
1 | Jonh Snow | jonhs@got.com
--- | ----------- | -------------
2 | Sansa Stark | sansas@got.com
--- | ----------- | -------------
3 | Ayra Stark | ayras@got.com
来自数据库2的表用户
ID | Name | Email
--- | ----------- | -------------
1 | Jonh Stott | jonhs@example.com
--- | ----------- | -------------
2 | Jonh Jonh | jonhj@example.com
--- | ----------- | -------------
3 | Ayra Stark | ayras@got.com
期望的结果
ID | Name | Email
--- | ----------- | -------------
1 | Jonh Snow | jonhs@got.com
--- | ----------- | -------------
2 | Sansa Stark | sansas@got.com
答案 0 :(得分:0)
据我了解你的问题,你需要只保留DB1 union DB2中不重复的电子邮件吗?
好吧,按照你的逻辑:获取数据(通过数据库连接使用一个Input table
),计算每封电子邮件的记录数(Memory Group by
)和Filter
计数大于1。
使用不需要排序的Memory Group by
。在Group field
中输入密钥:email
。在Aggregates
中放置Number of rows
(在“类型”下拉列表中)和First Value
(或Last Value
)Name
,否则此列将从流。
如果您需要在输出中创建ID,请Add a sequence
。
答案 1 :(得分:0)