一般情况下,数据库去重复有以下那么三种方法:
第一种:
两条记录或者多条记录的每一个字段值完全相同,这种情况去重复最简单,用关键字distinct就可以去掉。例:
SELECTDISTINCTFROMTABLE
第二种:
两条记录之间之后只有部分字段的值是有重复的,但是表存在主键或者唯一性ID。如果是这种情况的话用DISTINCT是过滤不了的,这就要用到主键id的唯一性特点及groupby分组。例:
SELECTFROMTABLEWHEREIDIN(SELECTMAX(ID)FROMTABLEGROUPBY[去除重复的字段名列表,])
第三种:
两条记录之间之后只有部分字段的值是有重复的,但是表不存在主键或者唯一性ID。这种情况可以使用临时表,讲数据复制到临时表并添加一个自增长的ID,在删除重复数据之后再删除临时表。例:
//创建临时表,并将数据写入到临时表
SELECTIDENTITY(INT1,1)ASID,INTONEWTABLE(临时表)FROMTABLE
//查询不重复的数据
SELECTFROMNEWTABLEWHEREIDIN(SELECTMAX(ID)FROMNEWTABLEGROUPBY[去除重复的字段名列表,])
//删除临时表
DROPTABLENEWTABLE
打开sql2008数据库,无论哪个版本都行,方法和语句都是一样的
选择默认数据库为我们需要查询的数据库,输入SQL语句的时候,就会出现只能提示窗口
在这个表中,我们要统计同一个部门包含多少条记录
语句select
distinct
BELONG_DPID
from
BED可以查询出不同的部门有10个,如图所示
对语句进行完善,统计每个部门的行数
select
distinct
BELONG_DPID,COUNT(BELONG_DPID)
from
BED
查询结果如图所示,这样就筛选出各个部门的记录数
以上就是关于mysql数据库去重:(mysql数据库去重)全部的内容,包括:mysql数据库去重:(mysql数据库去重)、SQL查询不重复数据语句、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)