方法一:可以通过group by 进行分组。
创新互联公司致力于网站制作、网站建设,成都网站设计,集团网站建设等服务标准化,推过标准化降低中小企业的建站的成本,并持续提升建站的定制化服务水平进行质量交付,让企业网站从市场竞争中脱颖而出。 选择创新互联公司,就选择了安全、稳定、美观的网站建设服务!
sql:select username,count(username) from tablename grop by username;
解释:以上sql就是通过分组函数读取出tablename表中username的值和每个不同值的统计个数。
方法二:可以通过distinct函数 进行去重查询。
sql:select distinct username from tablename
解释:本sql就是查询出所有的tablename表中的username值(不重复)。
select testid,count(1) from testtable group by testid having count(1)1
count(1)就是重复在数量
如何查询重复的数据
select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) 1
PS:将上面的号改为=号就可以查询出没有重复的数据了。
Oracle删除重复数据的SQL(删除所有):
删除重复数据的基本结构写法:
想要删除这些重复的数据,可以使用下面语句进行删除
delete from 表名 a where 字段1,字段2 in
(select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) 1)
上面的SQL注意:语句非常简单,就是将查询到的数据删除掉。不过这种删除执行的效率非常低,对于大数据量来说,可能会将数据库吊死。
建议先将查询到的重复的数据插入到一个临时表中,然后对进行删除,这样,执行删除的时候就不用再进行一次查询了。如下:
CREATE TABLE 临时表 AS (select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) 1)
上面这句话就是建立了临时表,并将查询到的数据插入其中。
下面就可以进行这样的删除操作了:
delete from 表名 a where 字段1,字段2 in (select 字段1,字段2 from 临时表);
用计数分类汇总法,比如你这个表要判断3个字段重复就算重复,那就用
select 字段1,字段2,字段3,count(*) cnt from tab1 group by 字段1,字段2,字段3 having count(*)1
来判断是否重复。
select row_number() over(partition by 判断重复的字段 ORDER BY 你想排序的字段) as fnum from 表名
有问题追问
select row_number() over(partition by 判断重复的字段 ORDER BY 你想排序的字段) as fnum from 表名
有问题追问