如何查出重复的数据

[复制链接]
查看11 | 回复8 | 2014-10-1 06:00:14 | 显示全部楼层 |阅读模式
现在有一表a,里面有众多字段,但其中chcode是不会重复的,
但现在我发出如下两个SQL
select count(chcode) from a
结果:51088
select count(*) from
(
select distinct chcode from a
) b
结果:51085
这样,说明chcod存在了重复数据,现在我想问,怎么可以查出出现重复的chcode?

回复

使用道具 举报

千问 | 2014-10-1 06:00:14 | 显示全部楼层
select chcod, count(1) from a
group by chcod
having count(1) > 1
回复

使用道具 举报

千问 | 2014-10-1 06:00:14 | 显示全部楼层
分组之后利用 max(rowid)
回复

使用道具 举报

千问 | 2014-10-1 06:00:14 | 显示全部楼层
2楼的办法简单一些,找出来以后删除掉,然后加上主键。
回复

使用道具 举报

千问 | 2014-10-1 06:00:14 | 显示全部楼层
简单的分组问题,
select chcod, count(0) from a
group by chcod
having count(0) > 1
回复

使用道具 举报

千问 | 2014-10-1 06:00:14 | 显示全部楼层
huangqiude 发表于 2014-11-27 22:18
简单的分组问题,
select chcod, count(0) from a
group by chcod

简单实用同2楼
回复

使用道具 举报

千问 | 2014-10-1 06:00:14 | 显示全部楼层
select chcode from a group by chcode having count(chcode)>1;
回复

使用道具 举报

千问 | 2014-10-1 06:00:14 | 显示全部楼层
select rowid,chcode from awhere exists(select null from a b where a.chcode=b.chcode and a.rowidb.rowid)
如果chcode列有索引的话,这个语句也很快
回复

使用道具 举报

千问 | 2014-10-1 06:00:14 | 显示全部楼层
都正解!
刪的時候小心別刪過頭。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行