精华内容
下载资源
问答
  • 1.group by过滤重复数据 用法:对table表中两个字段都重复的过滤 SELECT column1, column2 FROM table GROUP BY column1, column2; group by过滤重复数据还可以做到很灵活,例如想对重复几次的数据过滤,比如...

    1.group by过滤重复数据

    用法:对table表中两个字段都重复的过滤

    SELECT column1, column2
    FROM table
    GROUP BY column1, column2;

    group by过滤重复数据还可以做到很灵活,例如想对重复几次的数据过滤,比如查询重复3次以上的记录

    select column1,column2,count(1) as count 
    from table
    group by column1,column2
    having count>3

    2.distinct过滤重复数据

    用法:对table表中两个字段都重复的过滤

    SELECT DISTINCT column1, column2
    FROM table;

    注意:

    1.distinct可以加括号,也可以不加;加括号写法上只能对一个字段加括号,不然会报错,如:DISTINCT(column1), column2,虽然只对一个字段加括号,但是仍然是

    对两个字段都重复的过滤,不会只对column1字段重复过滤;结果DISTINCT column1, column2无差别

    2.distinct必须放在要查询字段的开头,SELECT column1, DISTINCT(column2)报错

    3.性能上两者区别

    在一个有10w条记录的表中进行查询,

    distict耗时:  0.078ms

    group by 耗时:0.031ms

    给查询的列添加索引之后:

    distict耗时:     0.00072550ms

    group by 耗时:0.00071650ms

    所以不管怎样,group by都要比distinct要快,从性能上推荐使用group by

     

    展开全文
  • oracle过滤重复数据

    千次阅读 2018-11-23 18:03:50
    Distinct,用distinct关键字只能过滤查询字段中所有记录相同的(记录集相同) (1)取一个字段,去除重复项。假设要id这个字段的值:  select distinct name from t1; --能消除重复记录,缺点:但只能取一个字段...

    转自百度

    Distinct,用distinct关键字只能过滤查询字段中所有记录相同的(记录集相同)

    (1)取一个字段,去除重复项。假设要id这个字段的值:

           select distinct name from t1;   --能消除重复记录,缺点:但只能取一个字段;distinct关键字会排序,效率很低     

    (2)取多个字段,去除重复项。假设要同时取id,name这2个字段的值:   

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


      所以用distinct无法达到同时取多个字段并去重其中一个字段。用group by可以解决这个问题。

    (3)取多个字段并去重其中一个字段。例如要显示的字段为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;
    将上面的>号改为=号就可以查询出没有重复的数据了。例如找出没有重复的gkrq字段值的记录:

        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;

     

     例子2:

    SELECT ROWID,EMPNO,JOB FROM EMP
      WHERE ROWID!=(SELECT MAX(ROWID) FROM EMP D
      WHERE  EMP.JOB=D.JOB)
    ORDER BY JOB;

    举例解释: 
    假设现在EMP表有三条记录,分别为a(rowid=1),b(rowid=2),b(rowid=3)。(b存在重复) 
    那么where语句中, 
    对于记录a来说,只有一条记录,其rowid为1,而关联的D的max(rowid)也为1,由于1=1,所以条件不成立,记录a不会被检出; 
    对于记录b来说,由于存在2条记录,rowid分别为2和3,而关联的D的max(rowid)也为3(2小于3),所以rowid为2的记录满足条件(2<>3),rowid为2的b记录会被检出,rowid为3的记录不会被检出。 
    故对于以上,查询结果就是b(rowid=2)。 
    
    总结:此语句对于任何存在件数为n(n>=1)的记录来说,必将有n-1条记录被检出。

     

     

    展开全文
  • 一张表存储帖子表,一张表存储用户已经看过的帖子的表, 如何使用ElasticSearch在查询帖子的时候,过滤掉用户已经浏览过的帖子???
  • MySQL 查询过滤重复数据

    千次阅读 2017-10-13 17:01:50
    1.查询new 表中去除title字段的重复数据,显示id最大的那条数据 Select * From new Where id In (Select Max(id) From new Group By title) ; 2.查询表中重复数据 Select * From 表 Where 重复字段...

    1.查找重复字段p_name的重复条数

    Select p_name,count(*) as count from zyx_member group by p_name having count>1;

    2.查询new 表中去除title字段的重复数据,显示id最大的那条数据

    Select * From new Where id In (Select Max(id) From new Group By title) ;

    3.查询表中重复数据

    Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1) 

    展开全文
  • 我司某个环境的es中被导入了重复数据,导致查询的时候会出现一些重复数据,所以要我们几个开发想一些解决方案,我们聊了聊,相出了下面一些方案: 1.从源头解决:导入数据时进行唯一性校验 2.从数据解决:清洗数据,...


    带家好,我是马儿,这次来讲一下最近遇到的一个问题

    我司某个环境的es中被导入了重复数据,导致查询的时候会出现一些重复数据,所以要我们几个开发想一些解决方案,我们聊了聊,出了下面一些方案:
    1.从源头解决:导入数据时进行唯一性校验
    2.从数据解决:清洗数据,将重复的数据查出后清理,然后入库
    3.从查询解决:查询时筛选重复数据

    我就从查询着手,找到了聚合查询的方法
    在这里插入图片描述

    聚合(Aggregations)

    聚合功能为ES带来了统计分析的能力,类似于SQL语言中的group by,avg,sum等函数

    桶(Buckets):符合条件的文档的集合,相当于SQL中的group by

    桶的概念在很多地方有应用,比如桶排序,HashMap的实现中数组也可看作桶,等等等等

    示例:
    根据city,对twitter索引的文档进行分组
    aggs:聚合
    my:自定义名称
    terms:根据结果分类
    field:筛选字段
    city:需要分类的字段

    GET /twitter/doc/_search
    {
    	"from": 0,
    	"size": 0,
    	"aggs": {
    	  "my":{
    	    "terms":{
    	      "field": "city"
    	    }
    	  }
    	}
    }
    

    结果中聚合的部分:
    计算出了类型和命中的数量

    "aggregations": {
        "my": {
          "doc_count_error_upper_bound": 0,
          "sum_other_doc_count": 0,
          "buckets": [
            {
              "key": "北京",
              "doc_count": 105
            },
            {
              "key": "上海",
              "doc_count": 1
            }
          ]
        }
      }
    

    但这不是只有统计结果吗,我要的是筛选后的数据啊
    在这里插入图片描述

    top_hits指标聚合器

    top_hits指标聚合器跟踪要聚合的最相关文档,可以有效地用于通过存储桶聚合器按某些字段对结果集进行分组。
    选项:
    from-要获取的第一个结果的偏移量。
    size-每个存储桶要返回的最匹配匹配项的最大数目。 默认情况下,返回前三个匹配项。
    排序-匹配的热门匹配的排序方式。 默认情况下,命中按主要查询的分数排序。

    示例:
    根据city,对twitter索引的文档进行分组、根据age进行排序、结果只包含user+age+city,然后显示每组的一条数据
    aggs:聚合
    my:自定义名称
    terms:根据结果分类
    field:筛选字段
    city:需要分类的字段
    sort:排序
    age:排序依据字段
    order:排序方式
    desc:降序
    _source includes:结果包含的字段
    size:每组显示的数量

    {
    	"from": 0,
    	"size": 0,
    	"aggs": {
    	  "my":{
    	    "terms":{
    	      "field": "city"
    	    },
    	    "aggs":{
    	      "my_top_hits":{
    	        "top_hits":{
    	          "sort": [
                  {
                    "age": {
                      "order": "desc"
                    }
                  }
                ],
                "_source": {
                  "includes": [
                    "user",
                    "age",
                    "city"
                  ]
                },
    	          "size":1
    	        }
    	      }
    	    }
    	  }
    	}
    }
    

    结果中聚合的部分:

    "aggregations": {
        "my": {
          "doc_count_error_upper_bound": 0,
          "sum_other_doc_count": 0,
          "buckets": [
            {
              "key": "北京",
              "doc_count": 105,
              "my_top_hits": {
                "hits": {
                  "total": 105,
                  "max_score": null,
                  "hits": [
                    {
                      "_index": "twitter",
                      "_type": "doc",
                      "_id": "AW5jwgirrweXGTc7-cPA",
                      "_score": null,
                      "_source": {
                        "city": "北京",
                        "user": "朝阳区-老王",
                        "age": 50
                      },
                      "sort": [
                        50
                      ]
                    }
                  ]
                }
              }
            },
            {
              "key": "上海",
              "doc_count": 1,
              "my_top_hits": {
                "hits": {
                  "total": 1,
                  "max_score": null,
                  "hits": [
                    {
                      "_index": "twitter",
                      "_type": "doc",
                      "_id": "AW5jwiM1rweXGTc7-cPB",
                      "_score": null,
                      "_source": {
                        "city": "上海",
                        "user": "虹桥-老吴",
                        "age": 90
                      },
                      "sort": [
                        90
                      ]
                    }
                  ]
                }
              }
            }
          ]
        }
      }
    

    但是光使用terms,我添加了多个字段后查不出来东西了都,难道这样还不行吗
    在这里插入图片描述

    使用script进行聚合

    常规的聚合无法在聚合中进行复杂操作,所以要加入脚本
    示例:
    修改terms中内容为下,将三个条件拼接起来

    "terms":{
    	      "script": "doc['user.keyword'].value + '#' + doc['age'].value + '#' +doc['city'].value"
    	    },
    

    查询结果:
    key:拼接的条件
    doc_count:每组重复的数目

    "aggregations": {
        "my": {
          "doc_count_error_upper_bound": 0,
          "sum_other_doc_count": 0,
          "buckets": [
            {
              "key": "双榆树-张三#20#北京",
              "doc_count": 101,
              "my_top_hits": {
                "hits": {
                  "total": 101,
                  "max_score": null,
                  "hits": [
                    {
                      "_index": "twitter",
                      "_type": "doc",
                      "_id": "AW9lr8sBP5iHlpen8GYt",
                      "_score": null,
                      "_source": {
                        "city": "北京",
                        "user": "双榆树-张三",
                        "age": 20
                      },
                      "sort": [
                        20
                      ]
                    }
                  ]
                }
              }
            },
            {
              "key": "东城区-李四#30#北京",
              "doc_count": 1,
              "my_top_hits": {
                "hits": {
                  "total": 1,
                  "max_score": null,
                  "hits": [
                    {
                      "_index": "twitter",
                      "_type": "doc",
                      "_id": "AW5jwaOIrweXGTc7-cO-",
                      "_score": null,
                      "_source": {
                        "city": "北京",
                        "user": "东城区-李四",
                        "age": 30
                      },
                      "sort": [
                        30
                      ]
                    }
                  ]
                }
              }
            },
            {
              "key": "东城区-老刘#30#北京",
              "doc_count": 1,
              "my_top_hits": {
                "hits": {
                  "total": 1,
                  "max_score": null,
                  "hits": [
                    {
                      "_index": "twitter",
                      "_type": "doc",
                      "_id": "AW5jwXhcrweXGTc7-cO9",
                      "_score": null,
                      "_source": {
                        "city": "北京",
                        "user": "东城区-老刘",
                        "age": 30
                      },
                      "sort": [
                        30
                      ]
                    }
                  ]
                }
              }
            },
            {
              "key": "朝阳区-老王#50#北京",
              "doc_count": 1,
              "my_top_hits": {
                "hits": {
                  "total": 1,
                  "max_score": null,
                  "hits": [
                    {
                      "_index": "twitter",
                      "_type": "doc",
                      "_id": "AW5jwgirrweXGTc7-cPA",
                      "_score": null,
                      "_source": {
                        "city": "北京",
                        "user": "朝阳区-老王",
                        "age": 50
                      },
                      "sort": [
                        50
                      ]
                    }
                  ]
                }
              }
            },
            {
              "key": "朝阳区-老贾#35#北京",
              "doc_count": 1,
              "my_top_hits": {
                "hits": {
                  "total": 1,
                  "max_score": null,
                  "hits": [
                    {
                      "_index": "twitter",
                      "_type": "doc",
                      "_id": "AW5jwcvBrweXGTc7-cO_",
                      "_score": null,
                      "_source": {
                        "city": "北京",
                        "user": "朝阳区-老贾",
                        "age": 35
                      },
                      "sort": [
                        35
                      ]
                    }
                  ]
                }
              }
            },
            {
              "key": "虹桥-老吴#90#上海",
              "doc_count": 1,
              "my_top_hits": {
                "hits": {
                  "total": 1,
                  "max_score": null,
                  "hits": [
                    {
                      "_index": "twitter",
                      "_type": "doc",
                      "_id": "AW5jwiM1rweXGTc7-cPB",
                      "_score": null,
                      "_source": {
                        "city": "上海",
                        "user": "虹桥-老吴",
                        "age": 90
                      },
                      "sort": [
                        90
                      ]
                    }
                  ]
                }
              }
            }
          ]
        }
      }
    

    可以看到,每组都不一样,我们script真是太强大了
    在这里插入图片描述

    Java实现

    elasticsearch包中的工具类
    使用elasticsearch包中的工具类,将索引中所有字段进行拼接,作为aggregation参数传入查询即可

    总结

    本文介绍了es的聚合功能,aggs+top_hits+script就能过滤重复数据,得到唯一结果。

    –02020728
    补充分页
    Elasticsearch聚合后分页

    这个分页以后有机会再说
    在这里插入图片描述

    展开全文
  • 【问题】在oracle中分多次执行SQL查询,结果是百万条数量级的字符串数据,需过滤重复数据并保证各原SQL查询的记录顺序,然后输出到txt中。 【分析】1、使用union all。使用union all连接各SQL语句执行...
  • 需求是这样的:导出数据的时候过滤掉个提号重复数据,只保留最新维护(最后一次添加)的那条。 经网上查找资料,得知row_number() 可以实现。 了解这个函数的使用,可看看这篇文章: ... 里面讲解的很详细。...
  • 如若表中的部分字段没有唯一约束性,就会查询出重复数据。为了查询出不重复的数据,MYSQL 提供了distinct 关键字实现数据去重。 例: TEST 数据库中的数据表TABLE,其表结构和表数据如下 select a.* from table a; ...
  • ibatis 过滤重复数据

    千次阅读 2012-07-24 23:01:02
    mybatis sql语句如下: ...控制器类:list是连接查询两表所有的内容,map把重复的值去掉,type1(分类一)是type2(分类二)的外键,要做的效果是点击分类一显示出对应的分类列表2. 显示map集合中的数据
  • C# DataTable 过滤重复数据

    千次阅读 2014-01-16 10:26:40
     dt = ......//给dt赋值 //将dt中的重复数据过滤掉 DataView myDataView = new DataView(dt); //此处可加任意数据项组合 string[] strComuns = { "列1", "列2", "列3"}; dt = myDataView.To...
  • Oracle过滤重复数据,取最新的数据

    千次阅读 2018-04-15 10:53:53
    也就是device_id字段不能重复,消除device_id字段重复的记录,而且device_id对应的检测信息test_result是最新的。 解决思路:用Oracle的row_number() over函数来解决该问题。 解决过程: 1.查...
  • //将所有数据整合到一个list中去,根据电话号码过滤重复数据 //hashmap中以电话号码为主键,过滤重复数据 Map map_all=new HashMap(); for(int i=0;i String pnum= fsmblb_list.get(i).getC_mbhm(); if(pnum==...
  • vue使用filter()方法 过滤重复数据

    千次阅读 2021-03-01 14:51:20
    在这里插入代码片 `` let textList = texts.filter((item, index, arr) => arr.indexOf(item, 0) === index);
  • 过滤重复数据 JavaScript push() 方法

    千次阅读 2018-03-13 15:46:43
    //显示来货编号有连号且在未开箱状态订单 function isShowTrackingNumber() { var tracking_number = $(&quot;[name='tracking_number']&quot;...quot;&quot;...[name='tracking_number_array...
  • 一个过滤重复数据的sql语句:

    千次阅读 2006-04-01 17:16:00
    一个过滤重复数据的sql语句:数据如下:303 标准类别 TR_STANDARD_MANAGER107 巡视记录类别 TR_PATROL_LOG61 巡视记录类别 TR_PATROL_LOG221 检修类型 TR_REPAIR_LOG121 检修管理计划类别 TR_REPAIR_PLAN...
  • select * from t_case where CAR_NUMBER in (select CAR_NUMBER from t_case group by CAR_NUMBER having count(CAR_NUMBER) > 1)      DELETE from t_case WHERE (CAR_NUMBER) IN ( SELECT CAR_NUMBER
  • 也就是device_id字段不能重复,消除device_id字段重复的记录,而且device_id对应的检测信息test_result是最新的。   解决思路:用Oracle的row_number() over函数来解决该问题。 解决过程:
  • 连表查询,distinct过滤重复数据

    千次阅读 2013-12-09 10:50:10
    $sql = 'select distinct(g.goods_id),g.* ...:上述方法中删除重复记录取决于创建唯一索引时选择的字段,在实际的操作过程中读者务必首先确认创建的唯一索引字段是否正确,以免将有用的数据删除。
  • 字段1 字段2 字段3 现在字段1 和字段2 有重复数据 但是 字段...先前我只需要查询字段1和字段2的数据 并且过滤重复数据是这样 select distinct 字段1,字段2 from tableName 但是现在需要增加字段3 这样该怎么写
  • 在DAO层Mapper方法中参数为List    insert into usi_user_role (user_id,role_id)    select #{item.userid,jdbcType=VARCHAR},  #{item.roleid,jdbcType=VARCHAR} from dual where not exists(sel
  • -- 求重复ip的其中一个id (select ip from table1 group by ip having count(1) >= 1) -- 取出重复的 ip group by ip ) ; 返回结果: 1 1 127.0.0.1 深圳 2 2 127.0.0.2 广州 3 6 127.0.0.4 上海 ...
  • 也就是device_id字段不能重复,消除device_id字段重复的记录,而且device_id对应的检测信息test_result是最新的。 解决思路:用Oracle的row_number() over函数来解决该问题。解决过程: 1.查看表中的重复记录select...
  • SQL 重复数据的提取与过滤

    千次阅读 2012-08-31 11:15:46
    SQL 重复数据的提取与过滤   提取重复数据 SELECT * FROM tablename GROUP BY colname HAVING COUNT(*) > 1  ...过滤重复数据 SELECT * FROM tablename GROUP BY colname HAVING COUNT(*) = 1
  • 1.先看数据: 图片展示: 文本展示(可copy进txt,导入excel,再导入数据库生成): 序号,企业,建设主体 1,渝兴印刷厂,供销社 2,莱迅塑胶材料厂,供销社 3,金盏塑料厂,粮管所 4,红林五金电器厂,粮管...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 248,700
精华内容 99,480
关键字:

怎么过滤重复数据