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

Distinct函数的替代方法(转帖)

 
阅读更多

 

    今天在论坛上看到一个面试题,是说有什么办法可以替代distinct,得到同样的结果。答案都被大家说的差不多了,发现挺有意思的,就记录一下:

SQL> select num from t1;


       NUM
----------
         6
         6
         7
         8
         9
         1
         1
         1
       1
        1
         1
         1
        1
         1
        1


15 rows selected
 
SQL> select distinct num from t1;


       NUM
----------
         1
         6
         8
        7
        9


5 rows selected



一、用unique代替distinct:

这个比较无耻,基本属于说了跟没说一样,但确实是对的


SQL> select unique num from t1;


       NUM
----------
         1
         6
         8
        7
        9


5 rows selected


二、用group by来做:

这个应该是出题者的本意


SQL> select num from t1 group by num;


       NUM
----------
         1
         6
         8
         7
         9


5 rows selected


三、用union和minus:

因为union和minus默认都是先distinct然后再做聚集,所以可以这样做:

SQL> select num from t1 minus select 999 from dual;


       NUM
----------
         1
         6
         7
         8
         9


5 rows selected
 

SQL> select num from t1 union select num from t1 ;


       NUM
----------
         1
         6
         7
         8
         9


5 rows selected


一个是minus一个没有的项,一个是union它本身。



关于其他的方法,要是再用over之类的就没有什么太大的意义了,差不多就这3种了。

 

原帖地址:http://www.blogjava.net/decode360/archive/2009/06/22/283563.html

分享到:
评论

相关推荐

    count_distinct:在PostgreSQL中扩展以COUNT(DISTINCT ...)聚合的替代方法

    此扩展提供了COUNT(DISTINCT ...)的替代方法,该方法对于大量数据通常会以排序和不良性能而告终。 职能 有两个多态聚合函数,用于处理按值传递的固定长度数据类型(即,在64位计算机上最多为8B值): count_...

    自写函数用于替换wm_concat函数.zip

    在Oracle数据库中,`WM_CONCAT`函数是一个非常实用的工具,它允许我们将多个行的数据合并成一个字符串,但是这个函数在Oracle 11g R2版本之后被标记为弃用,不再推荐使用。为了应对这个问题,开发者们经常需要自定义...

    完美解决distinct中使用多个字段的方法

    完美解决distinct中使用多个字段的方法,完美解决distinct中使用多个字段的方法完美解决distinct中使用多个字段的方法完美解决distinct中使用多个字段的方法完美解决distinct中使用多个字段的方法

    oracle函数介绍(6) 著名函数之分析函数.doc

    Oracle函数在数据库查询和数据分析中扮演着至关重要的角色,尤其是一些著名的分析函数,它们能够帮助我们进行复杂的统计计算和数据处理。在本篇中,我们将深入探讨几个关键的分析函数,包括AVG、SUM、COUNT、FIRST_...

    EFCore查询不重复数据Distinct.docx

    `Distinct()`方法是C# LINQ中用于去除重复元素的关键操作,而在EFCore中,它可以应用于数据库查询来过滤掉重复记录。 首先,让我们深入理解`Distinct()`方法。在C#中,`Distinct()`方法通过比较元素的默认等价关系...

    mysql中distinct用法【SQL中distinct的用法】.docx

    使用 DISTINCT 关键字可以与 COUNT 函数结合使用,以统计表中唯一值的数量。例如: ``` SELECT COUNT(DISTINCT name) FROM A; ``` 这条语句将返回表 A 中 name 列的所有唯一值的数量。注意,这条语句只能统计单个...

    使用Distinct查询.rar

    `DISTINCT`通常与`GROUP BY`和聚合函数(如`COUNT`, `SUM`, `AVG`, `MIN`, `MAX`)一起使用,用于计算每个分组的唯一值。例如,计算每个部门的员工数量: ```sql SELECT DISTINCT department, COUNT(*) AS employee...

    select distinct用法

    最后,DISTINCT关键字可以与其他函数结合使用,例如COUNT、GROUP_CONCAT等函数,以实现更复杂的查询需求。 在本文中,我们可以看到,作者尝试使用DISTINCT关键字来查询不重复的记录,但是却遇到了许多问题。作者...

    distinct的使用.docx

    另外,`DISTINCT`也可以与聚合函数结合使用,如`COUNT()`,以计算不同值的数量: ```sql SELECT COUNT(DISTINCT department) FROM employee; ``` 这将返回`employee`表中不同部门的总数,而不是所有部门的员工数量。...

    分析MySQL中优化distinct的技巧

    在MySQL数据库中,优化`DISTINCT`操作是一个关键的性能提升策略,特别是在处理大量数据时。上述场景中,用户遇到了一个问题:对一个10G以上的单表`user_access_xx_xx`执行`SELECT COUNT(DISTINCT nick)`以统计唯一...

    PLSQL单行函数和组函数详解

    此外,`DISTINCT`关键字常与组函数一起使用,用于去除重复值,例如`COUNT(DISTINCT column_name)`会计算唯一值的数量。 总的来说,掌握PL/SQL的单行函数和组函数对于数据库开发和查询优化至关重要。理解它们的用法...

    黑马程序员Java函数式编程全套视频教程,Lambda表达式、Stream流、函数式编程一套全通关1

    `distinct()`方法用于去除Stream中的重复元素,而`sorted()`可以对Stream中的元素进行排序,还可以接受一个自定义的Comparator进行定制排序。 并行流(Parallel Streams)是Stream API的一个强大功能,它利用多核...

    MySQL中索引优化distinct语句及distinct的多字段操作

    MySQL通常使用GROUPBY(本质上是排序动作)完成DISTINCT操作,如果DISTINCT操作和ORDERBY操作组合使用,通常会用到临时表.这样会影响性能. 在一些情况下,MySQL可以使用索引优化DISTINCT操作,但需要活学活用.本文涉及一个...

    sql函数大全-sql函数大全

    SQL 函数大全 SQL 函数大全是指在 SQL 语言中所使用的各种函数,它们可以帮助开发者更方便地处理数据、进行计算、转换数据类型等。下面是 SQL 函数大全的详细说明: 一、内部函数 内部函数是 SQL 语言中最基本也...

    MongoDB教程之聚合(count、distinct和group)

    `count` 方法用于计算集合中符合特定条件的文档数量。在MongoDB中,你可以直接调用`db.collection.count()`来获取一个集合中的所有文档数量,或者提供一个查询对象作为参数来统计满足该条件的文档数。例如,以下代码...

    BIEE 函数使用

    COUNTDISTINCT 函数对 COUNT 函数进行相异处理。 7. 最大值函数(MAX) MAX 函数计算满足数值表达式参数的行的最大值。 语法:MAX(numExpr) 其中:numExpr 求出数值的任意表达式。 示例:MAX("事实-销售订单头...

    oracle函数大全分析函数,聚合函数,转换函数,日期型函数,字符型函数,数值型函数,其他函数.docx

    Oracle 函数大全是对 Oracle 数据库中各种函数的总结和分类,包括分析函数、聚合函数、转换函数、日期型函数、字符型函数、数值型函数和其他函数等,每种函数都有其特点和应用场景,可以根据实际情况选择合适的函数...

    【DISTINCT】优化之MySQL官方文档翻译

    这种等价性意味着适用于`GROUP BY`查询的优化方法同样适用于带有`DISTINCT`子句的查询。因此,对于`DISTINCT`查询的更多优化细节,可以参考[MySQL官方文档]...

    oracle rownum和distinct

    "Oracle 中的 ROWNUM 和 DISTINCT" Oracle 中的 ROWNUM 和 DISTINCT 是两个非常重要的关键词,它们在查询数据时发挥着至关重要的作用。然而,许多开发者在使用这两个关键词时,却常常会遇到一些不太理解的地方,...

    qlikview常用函数

    例如,使用SUM函数时,可以加上distinct修饰符,以便于在求和过程中排除重复值。而total修饰符可以将计算扩展到所有数据集,而非仅仅当前可视数据集。在实际应用中,这些函数可以与QlikView的其他特性结合起来,如...

Global site tag (gtag.js) - Google Analytics