你是要查询不重复的记录有多少条吧?
select count(*) from table where rowid in
(select rowid from table group by id having count(id)=1)

解决方案 »

  1.   

    是这样:
    http://www.oradb.net/sql/find0.htm
    还是这样:
    select id,count(1) from table group by id;
      

  2.   

    select count(distinct * ) from table;的作用是查询不重复行的总数。
    是不是可以在某种意义上实现相减呢
    SELECT (SELECT COUNT(*) FROM TABLE)-(select count(distinct * ) from table)
    FROM DUAL;
    当然你的表中可能会出现多种情况的重复,比如记录1和记录2、记录3重复,
    记录4和记录5重复,还有记录6。那总记录数是6,不重复记录为3,
    重复记录为3。
      

  3.   

    表名:
    T_test
    id   varchar2(50);
    name1 varchar2(50);
    name2 varchar2(50);
    插入数据:
            id       name1    name2
    01 NA1 NB1
    02 NA2 NB2
    01 NA1 NB1
    01 NA1 NB1
    02 NA2 NB2
    01 NA2 NB1SELECT id,name1,name2, COUNT(id) AS Expr1
    FROM t_test a,(SELECT DISTINCT *
            FROM T_TEST) b
    where (a.id = b.id and a.name1 = b.name1 and a.name2 = b.name2)
    GROUP BY id, name1, name2        id     Expr1
    01 3
    01 1
    02 2
      

  4.   

    对不起
    结果应该是这样的
    01 NA1 NB1 3
    01 NA2 NB1 1
    02 NA2 NB2 2
    不好意思
    我没有oracle
    sqlserver下的运行结果
    处理真是不方便