现在有一个问题,应该很简单的,但是无奈SQL语句没学好,现请教一下各位大侠.在某个表中有n组数据,组是因为某个字段在每组数据当中的内容是相同的,每组的行数是确定的且每组都相同,问题是现在某组数据缺了一行,现在想查找出这组数据,相同的字段只有一个.

解决方案 »

  1.   

    select column1,column2,count(column3) R
    from Tb
    group by column1,column2
    order by R
    第一行数据就是缺少一行的那组数据相关信息;
    选出这组数据的所有行:
    select * from Tb where (column1,column2) in
    (
    select column1,column2
    from
    (
    select column1,column2,count(column3) R
    from Tb
    group by column1,column2
    order by R
    )
    where rownum <2
    )
      

  2.   

    假如分组字段为field1,每组固定有5行,现查少于5行的组名select field1
    from ...
    group by field1
    having count(*) < 5;
      

  3.   

    select column1,column2
    from
    (
    select column1,column2,count(*) c_num
    from Tb
    group by column1,column2
    ) AA
    where c_num=(
       select min(BB.c_num)
       from
       (
         select column1,column2,count(*) c_num
         from Tb
         group by column1,column2
       ) BB
    )
      

  4.   

    select count(column)
    from table
    group by column
    having min(count(column))select加上其他字段就可以输出少了的那组数据。