在 talend 和 java 中查找重复记录的计数

Find the count of duplicate records in talend and java

我在 postgresql 中有一个 table,它在一列中有重复的数字。我在其中使用 Tpostgresqlinput 和一个查询:

select number , count(1) from abc.xyz having count(1)>1 group by number

在此组件之后,我使用 tFlowToIterate,然后使用 Tjavaflex。在 tJavaflex 中,我正在使用

起始码为:

int count = 0; count++;

主要代码为:

if (count>1) 
("row1.serial_number",row1.serial_number)
    System.out.println(row1.serial_number);
else
    System.out.println("Duplicates are not found");

但是我得到了 else 部分的输出,因为没有找到重复项。
如果序列号大于 0,我如何找到这些序列号的数量和名称?
理想情况下,序列号应该是唯一的,但是 data.So 中有重复的序列号我想找到重复的序列号及其计数,仅当它大于 1 时作为输出。 预期输出应该是:如果有重复,即如果序列号的计数大于 1,那么它应该向用户发送邮件通知,告知这些序列号的计数大于 1,即序列号和计数号。

在您的起始代码中,您将 count 初始化为 0 并递增 1,这导致 count = 1。此值永远不会改变,因此您始终会得到 if 的 else 部分。

您真正想要做的是使用您输入的计数。为此,请将 tJavaRow 与:

一起使用
if(input_row.count > 1)
  System.out.println(input_row.serial_number);
else
  System.out.println("Duplicates are not found");