`
tudusi
  • 浏览: 1051647 次
文章分类
社区版块
存档分类
最新评论

过滤重复字段的方法

 
阅读更多

一般的情况 过滤正行数据可以用distinct 函数 或者是查询一个字段的话 可以用到 但是 需求往往是不同的. 现在要求的是单个字段的相同被过滤掉.

下面就是方法 转载来着:http://blog.163.com/xinu_com/blog/static/141587520103198018795/ 感谢提出方案!

用distinct关键字只能过滤查询字段中所有记录相同的(记录集相同),而如果要指定一个字段却没有效果,另外distinct关键字会排序,效率很低 。

select distinct name from t1 能消除重复记录,但只能取一个字段,现在要同时取id,name这2个字段的值。

select distinct id,name from t1 可以取多个字段,但只能消除这2个字段值全部相同的记录

所以用distinct达不到想要的效果,用group by 可以解决这个问题。

例如要显示的字段为A、B、C三个,而A字段的内容不能重复可以用下面的语句:

select A, min(B),min(C),count(*) from [table] where [条件] group by A

having [条件] order by A desc

为了显示标题头好看点可以把select A, min(B),min(C),count(*) 换称select A as A, min(B) as B,min(C) as C,count(*) as 重复次数

显示出来的字段和排序字段都要包括在group by 中

但显示出来的字段包有min,max,count,avg,sum等聚合函数时可以不在group by 中

如上句的min(B),min(C),count(*)

一般条件写在where 后面

有聚合函数的条件写在having 后面

如果在上句中having加 count(*)>1 就可以查出记录A的重复次数大于1的记录

如果在上句中having加 count(*)>2 就可以查出记录A的重复次数大于2的记录

如果在上句中having加 count(*)>=1 就可以查出所有的记录,但重复的只显示一条,并且后面有显示重复的次数----这就是所需要的结果,而且语句可以通过hibernate

下面语句可以查询出那些数据是重复的:

select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1

将上面的>号改为=号就可以查询出没有重复的数据了。

例如 select count(*) from (select gcmc,gkrq,count(*) from gczbxx_zhao t group by gcmc,gkrq having

count(*)>=1 order by GKRQ)

select * from gczbxx_zhao where viewid in ( select max(viewid) from gczbxx_zhao group by

gcmc ) order by gkrq desc ---还是这个可行。

分享到:
评论

相关推荐

    解析mysql不重复字段值求和

    在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是...

    过滤一些重复记录的方法

    本来是一个考勤系统用的,但是搞到一半就有问题,就不继续了.但是对cai鸟有些参考作用吧

    row_number,根据多个字段过滤,partition by

    过滤方法有distinct 获取是整行 重复 但只想过滤2个或2个以上不是所有字段 怎么办? 根据多个字段过滤 比如表:teacher表 id ,name ,sex,idNumber,phone,...需求 根据name和idnumber和date过滤重复数据只取一条;

    python如何删除文件中重复的字段

    主要为大家详细介绍了python如何删除文件中重复的字段,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    list去掉重复对象

    一个list里面有多个对象,对象有几个字段,要求在对象里面不要有重复的数据的实现。

    C#查询时不显示重复数据,过滤重复内容

    摘要:C#源码,数据库应用,过滤重复数据 C#查询时不显示重复数据,过滤重复内容,示例采用SQLsERVER数据库,测试前请附加数据库。

    java8新特性将List中按指定属性排序过滤重复数据的方法

    主要介绍了java8新特性将List中按指定属性排序过滤重复数据的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

    SQL重复记录查询与删除

    过滤重复字记录,单字段重复,重复的只显示1条记录,并且显示出所有字段 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 只能显示哪些记录是重复的。 2、删除表中多余的重复记录,重复记录...

    mysql SELECT语句去除某个字段的重复信息

    mysql SELECT语句去除某个字段的重复信息,需要的朋友可以收藏下。

    CSV指定行重复数据查找

    批量显示CSV指定行重复数据,并将其结果存入文件夹中。使用python编写

    数据库 查询删除重复数据

    1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录

    sqlserver 删除重复记录处理(转)

    查找全部重复记录 Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1) 2. 过滤重复记录(只显示一条) Select * From HZT Where ID In (Select Max(ID) From HZT ...

    MySQL根据某一个或者多个字段查找重复数据的sql语句

    主要介绍了MySQL根据某一个或者多个字段查找重复数据的sql语句,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

    Java中对List去重 Stream去重的解决方法

    主要介绍了Java中对List去重, Stream去重的问题解答,文中给大家介绍了Java中List集合去除重复数据的方法,需要的朋友可以参考下

    数据透视表介绍——组合

    5、内部行字段中的项目是可以重复出现的,而外部行字段项目则相反; 6、通过双击透视表中汇总数据单元格,可以在一个新表中得到该汇总数据的明细数据,对其可以进行格式化、排序或过滤等等常规编辑处理;决不会影响...

    logstash-filter-dedupe:Redis的重复数据删除过滤器

    我们通过对要删除重复数据的字段进行哈希处理并将其存储在我们随后要检查的数据存储中来实现此目的。 如果找到匹配项,我们将对其进行标记。 然后,您可以继续删除{}它或类似的东西。 快速开始 对于初学者来说,此...

    e语言-通用填充树型框模块

    * 调用方法:数组填充树型框(填充目的树型框,填充源数组,[总根节点], [是否过滤重复数据])。总根节点为文本型数据,可选;是否过滤重复数 据为逻辑型数据,为真时过滤,反之不过滤(仅仅针对最小子项目),可选...

    非常好用的通用过滤与查询窗体(2000适用)access2000

    这是针对access2000所做的通用过滤与查询窗体,主要是为了避免每做一个查询窗体就必须重复做一个过滤条件的窗体,此通用窗体能够自动检测你查询的表或查询的字段,并根据其字段的类型及长度(如有缺省值,会自动填上...

    gravityforms-repeater:“重力表单”附加组件,允许用户重复指定的字段组

    多次重复字段组 在同一表格上使用多个中继器 使用简码向用户显示数据 使用Javascript操作中继器 自定义添加和删除按钮HTML 使用重力形式像通常一样预填充钩子和过滤器 支持条件逻辑! 问题 目前尚不支持所有字段。 ...

    淘金筛(数据王国的“BaiDu”超级搜索过滤)

    包含操作有如下几种: 包含,过滤所有在过滤输入中的文本中出现的数据 左边象,过滤所有以在过滤输入中的文本开头的数据 右边象,过滤所有以在过滤输入中的文本结尾的数据 4、在结果中查询过滤 可以无限次重复使用...

Global site tag (gtag.js) - Google Analytics