在IBM netezza数据库中的SQL表中查找部分重复的行

时间:2014-11-19 15:40:37

标签: sql netezza

这个问题与我之前的问题有关:

error of finding distinct cobinations of muiltiple columns in IBM netezza SQL table

现在,我需要在SQL IBM netteza Aiginity工作台的表中找到一些部分重复行。

表格如下:

id1   id2    **id3    id4  id5   id6**   id7  id8   id9
NY    63689  eiof   394  9761   9318   2846  2319  215
NY    63689  eiof   394  9761   9318   97614 648   645
CT    39631  pfef  92169 9418   9167   164   3494  34
CT    39631  pfef  92169 9418   9167   3649  7789  568

id3    id4  id5   id6  are duplicated for id1 = NY and id2 = 63689
id3    id4  id5   id6  are duplicated for id1 = CT and id2 = 39631

结果应为

 id1   id2    value
 NY    63689  2   
 CT    39631  2

更新:我只需为每个id1和id2计算 id3 id4 id5 id6 的部分重复项。我不关心id7,id8,id9的列。

我使用了sql查询:

 SELECT  id1,       id2,
  COUNT(*)   AS value
FROM
(
  SELECT
    id1, id2, id3, id4, id5, id6
  FROM
    myTable
  GROUP BY
    id1, id2, id3, id4, id5, id6
)
  AS uniques
GROUP BY
  id1, id2

但是,我得到了:

   id1   id2    value
   NY    63689  number of combinations of id7  id8   id9   
   CT    39631  number of combinations of id7  id8   id9   

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

以下查询生成所需的输出。这是你想要做的吗?

SELECT  id1, id2, COUNT(*)   AS value
FROM myTable
GROUP BY id1, id2;

编辑:

如果你想要完整的重复(所有列),但只显示前两个:

SELECT  id1, id2, COUNT(*) as value
FROM myTable
GROUP BY id1, id2, id3, id4, id5, id6;

如果您只想要带有重复项的示例,则可以添加having count(*) > 1