菜鸟笔记
提升您的技术认知

数据库查询结果去重(distinct与group by)-ag真人游戏

一般情况下,数据库去重复有以下那么三种方法:

第一种:

  两条记录或者多条记录的每一个字段值完全相同,这种情况去重复最简单,用关键字distinct就可以去掉。例:

1 select  distinct  from  table

第二种:

  两条记录之间之后只有部分字段的值是有重复的,但是表存在主键或者唯一性id。如果是这种情况的话用distinct是过滤不了的,这就要用到主键id的唯一性特点及group by分组。例:

1 select  from  table  where  id  in  ( select  max (id)  from  table  group  by  [去除重复的字段名列表,....])

第三种:

  两条记录之间之后只有部分字段的值是有重复的,但是表不存在主键或者唯一性id。这种情况可以使用临时表,讲数据复制到临时表并添加一个自增长的id,在删除重复数据之后再删除临时表。例:

1 2 3 4 5 6 //创建临时表,并将数据写入到临时表 select  identity(int1,1)  as  id,*  into  newtable(临时表)  from  table //查询不重复的数据 select  from  newtable  where  id  in  ( select  max (id)  from  newtable  group  by  [去除重复的字段名列表,....]) //删除临时表 drop  table  newtable
网站地图