首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL中distinct的用法

表A: 表B: 1.作用于单列 select distinct name from A 执行后结果如下: 2.作用于多列 示例2.1 select distinct name, id from...A 执行后结果如下: 实际上是根据name和id两个字段来去重的,这种方式Access和SQL Server同时支持。...示例2.2 select distinct xing, ming from B 返回如下结果: 返回的结果为两行,这说明distinct并非是对xing和ming两列“字符串拼接”后再去重的,而是分别作用于了...3.COUNT统计 select count(distinct name) from A; --表中name去重后的数目, SQL Server支持,而Access不支持 count是不能统计多个字段的...例如,假如表A有“备注”列,如果想获取distinc name,以及对应的“备注”字段,想直接通过distinct是不可能实现的。

1.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Mysql DISTINCT的实现思路

    DISTINCT实际上和GROUP BY操作非常相似,只不过是在GROUP BY之后的每组中只取出一条记录而已 所以,DISTINCT的实现方式和GROUP BY基本相同,同样可以通过索引扫描来实现,当然...,在仅使用索引无法完成DISTINCT时,MySQL只能通过临时表来完成。...但是,DISTINCT并不须要进行排序。...也就是说,当只进行DISTINCT操作的Query仅利用索引无法完成操作时,MySQL会利用临时表来做一次数据的“缓存”,但不会对临时表中的数据进行filesort操作 示例 EXPLAIN SELECT...group-by同样的方式 对于DISTINCT的优化,思路和GROUP BY基本上一致,关键在于利用好索引,当无法利用索引时,就要确保尽量不要在大结果集上面进行DISTINCT操作

    1.3K70

    突破常识:SQL增加DISTINCT后查询效率反而提高

    下面看看原始SQL和增加DISTINCT后的差别: SQL> SET AUTOT TRACE SQL> SELECT T1.OBJECT_NAME, T1.OBJECT_TYPE,T2.TABLESPACE_NAME...,添加DISTINCT后,语句的逻辑读数量反而比不加DISTINCT要低。...如果添加了DISTINCT:CBO清楚知道在最后一步肯定要进行排序去重的操作,因此在连接时就选择了HASH JOIN作为连接方式。这就是加上了DISTINCT后,逻辑读反而减少的原因。...不过加上DISTINCT后,执行计划增加了一个排序操作;而在不加DISTINCT时是没有这个操作的。...当连接的表数据量很大,但SELECT的最终结果并不是很多,且SELECT列数也不是很多的时候,加上DISTINCT后,增加的排序的代价要小于SEMIJOIN连接的代价。

    3.4K60

    【SQL】SQL中distinct的用法

    表A: 表B: 1.作用于单列 select distinct name from A 执行后结果如下: 2.作用于多列 示例2.1 select distinct name, id from A...执行后结果如下: 实际上是根据name和id两个字段来去重的,这种方式Access和SQL Server同时支持。...示例2.2 select distinct xing, ming from B 返回如下结果: 返回的结果为两行,这说明distinct并非是对xing和ming两列“字符串拼接”后再去重的,而是分别作用于了...3.COUNT统计 select count(distinct name) from A; --表中name去重后的数目, SQL Server支持,而Access不支持 count是不能统计多个字段的...例如,假如表A有“备注”列,如果想获取distinc name,以及对应的“备注”字段,想直接通过distinct是不可能实现的。

    1.6K20

    终于“搞懂” ALL VALUES DISTINCT 的区别

    之前听大佬讲过 ALL VALUES DISTINCT 的区别,一直懵懵懂懂。通过学习,今天终于算是“搞懂”了。...先说结论:其实在设计良好的数据模型里,VALUES 和 IDSTINCT 无本质区别,总是能返回相同的值。区别发生在模型中存在无效关系(空行)时。...使用多列作为参数时,返回这些列中所有现有值的组合。(解除筛选器,保留空行)。 VALUES 函数 使用表作为参数时,返回表的所有行,不删除重复项,并保留可能存在的空行。表中的重复行保持不变。...使用列作为参数时,返回当前筛选器中计算的列的不同值,并保留空行。 DISTINCT 函数 使用表作为参数时,返回表的不同值,不考虑空行。...(会删除重复行) 使用列作为参数时,返回当前筛选器中计算的列的不同值,但是不返回空行。 - END -

    65220

    sql DISTINCT去掉重复的数据统计方法

    我们只要在SELECT后加上一个DISTINCT就可以了。...DISTINCT的语法如下:SELECT DISTINCT “栏位名”FROM “表格名”举例来说,若要在以下的表格,Store_Information,找出所有不同的店名时,Store_Information...如果没有指定 DISTINCT,那么将返回所有行,包括重复的行。...,可以用下面语句获取到去掉重复数据后的记录: select distinct * from 表名 可以将查询的记录放到临时表中,然后再将原来的表记录删除,最后将临时表的数据导回原来的表中。...); drop table 临时表; 如果想删除一个表的重复数据,可以先建一个临时表,将去掉重复数据后的数据导入到临时表,然后在从临时表将数据导入正式表中,如下: INSERT INTO t_table_bak

    2.9K10

    c#使用Linq的Distinct()方法去重

    LINQ(Language Integrated Query)提供了一种简洁而强大的方式来处理数据集合,其中Distinct()方法是一个常用的去重工具。...本文将详细介绍Distinct()方法的工作原理、使用场景以及相关的性能考量。LINQ Distinct()方法的工作原理Distinct()方法是LINQ中的一个扩展方法,它返回序列中不重复的元素。...然后,我们调用了Distinct()方法来获取一个不包含重复元素的序列uniqueNumbers。最后,我们遍历uniqueNumbers并打印出每个元素。...性能考量虽然Distinct()方法提供了一种简洁的去重方式,但在处理大量数据时,性能也是一个需要考虑的因素。...以下是一些性能建议:避免在大数据集上使用Distinct():对于大数据集,Distinct()方法可能会因为频繁的比较操作而导致性能下降。

    2.3K00

    openGauss - 向量化执行引擎 - distinct分组聚合的实现

    再进一步,若distinct聚合则初始化等值比较操作符函数数组equalfns[],数组大小为distinct列数,该函数用于排序后的distinct比较: 由于多个聚合中,只要有一个聚合就会标记m_hashDistinct...order by,那么流程中通过m_hashDistinct进入distinct处理分支后,又是怎么分辩出第二个count是普通聚合呢?...Batchsortstate中,进行排序 6)从上面排好序的batchsortstate中取出一个batch,若时distinct则进行去重后再进行聚合,若为order by则直接进行聚合 7)然后对当前阶段的下组...组号为curr_set 8)当前阶段计算完后,切换阶段进入下一个阶段聚合计算 9)下一个阶段计算前,需要先对m_batchSortIn排序,然后进行4)、5)、6)7)操作,直到所有阶段的聚合都计算完。...简单来说,distinct聚合计算就是根据distinct列,对其进行排序,然后进行比较从而去重,最后对去重后的值进行聚合计算。

    21710

    SQL语句distinct的多个字段去重问题

    经典例子 select distinct name, id from table 或者 select name,id from table group by name 像这样是错误的写法,distinct...将需要去重的字段添加到where条件中,取出唯一id 然后就可以获得去重之后的两个字段了 不过我这边是你需要去重一个字段,展示两个字段的情况 # 注意 有很多朋友问...,group by是可以对多字段进行去重的,但是我这里为什么还说不行呢?...我在这里统一描述下 由于时间比较早了,我大概记得当时的场景是:对一个字段进行去重,而需要取两个字段,这样的写法如下 select A,B from table group by A 但是group..._HashMap黑龙江分Map的博客-CSDN博客_group_concat mysql去重的最方便的两种方法_承影v的博客-CSDN博客_mysql去重 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人

    2.9K30

    hive的group by与distinct的区别及性能测试比较

    Hive去重统计 相信使用Hive的人平时会经常用到去重统计之类的吧,但是好像平时很少关注这个去重的性能问题,但是当一个表的数据量非常大的时候,会发现一个简单的count(distinct order_no...先说结论:能使用group by代替distinc就不要使用distinct,例子: 实际论证 order_snap为订单的快照表 总记录条数763191489,即将近8亿条记录,总大小:108.877GB...7.448499541倍 注意到为什么会有这个差异,Hadoop其实就是处理大数据的,Hive并不怕数据有多大,怕的就是数据倾斜,我们看看两者的输出信息: # distinct Stage-Stage...,尽量不要使用distinct吧。...但是如果你想在一条语句里看总记录条数以及去重之后的记录条数,那没有办法过滤,所以你有两个选择,要么使用两个sql语句分别跑,然后union all或者就使用普通的distinct。

    1.7K20

    基于Python的数据计算:distinct、sortBy方法使用详解

    目录 前言 distinct方法的使用 sortBy方法的使用 distinct和sortBy方法的应用场景 结束语 前言 不用多说想必大家都知道Python作为一种广泛使用的编程语言,在数据计算领域有着强大的功能和丰富的库...distinct方法的使用 先来分享一下distinct方法的使用,distinct方法是用于去除数据集中的重复元素,返回一个去重后的新数据集,使每个元素都是唯一的,在Python中,我们可以使用集合(...涉及数据分析:在进行数据分析时,常常需要对数据进行排序,sortBy方法可以根据特定规则对数据进行排序,以便更好地理解和分析数据。...= distinct(my_list) print("去重后的数据:", distinct_data) # 排序 sorted_data = sortBy(distinct_data) print(..."排序后的数据:", sorted_data) 针对上面的示例代码,如果想要在排序时按照特定的顺序进行排序,可以使用sorted函数的key参数来指定排序规则,比如如果要按照数字从大到小的顺序进行排序,

    74933
    领券