你是要查询不重复的记录有多少条吧?
select count(*) from table where rowid in
(select rowid from table group by id having count(id)=1)
select count(*) from table where rowid in
(select rowid from table group by id having count(id)=1)
解决方案 »
- 建立外部表后 查询发生ORA-29913 KUP-04020 错误
- 求一SQL语句。
- 如何在存储过程中使用spool??
- java.sql.SQLException: 用尽的 Resultset 如何解决
- Oracle 10.2.0.1在SuSE Linux 10 ES上使用裸设备建库不成功的问题
- postgresql
- ORA-01658: 无法为表空间TEST中的段创建 INITIAL 区 ,请问这是什么样的错误?是因为没有用户权限?
- archive/下的文件可以删除么??
- 菜鸟问题,rman备份错误!!!(来者有分)
- JDBC操作中executeQuery(sql)操作问题?
- 在ORACLE版本切换时碰到一个奇怪的问题,一条原本正确的SQL语句出现错误
- 如何将sql server中的外连接语句在oracle中使用 呀?
http://www.oradb.net/sql/find0.htm
还是这样:
select id,count(1) from table group by id;
是不是可以在某种意义上实现相减呢
SELECT (SELECT COUNT(*) FROM TABLE)-(select count(distinct * ) from table)
FROM DUAL;
当然你的表中可能会出现多种情况的重复,比如记录1和记录2、记录3重复,
记录4和记录5重复,还有记录6。那总记录数是6,不重复记录为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
结果应该是这样的
01 NA1 NB1 3
01 NA2 NB1 1
02 NA2 NB2 2
不好意思
我没有oracle
sqlserver下的运行结果
处理真是不方便