`

Distinct函数的替代方法

    博客分类:
  • SQL
阅读更多

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

    SELECT DISTINCT p_column FROM your_table ); RETURN v_result; END MY_WM_CONCAT; / ``` 在这个例子中,我们使用了`LISTAGG`函数,它是Oracle 11g引入的一个新功能,可以将分组后的数据连接成一个字符串。`...

    arcplan常用函数例子

    - `IFNULL`或`ISNULL`: 检查值是否为空,如果为空则返回替代值。 - `IIF`: 三元条件表达式,类似编程中的三目运算符,根据条件返回两个可能的结果。 5. **聚合函数** - `COUNT`: 计算非空值的数量,常用于计数...

    SQL中distinct的用法(四种示例分析)

    ### 示例4:错误的用法与替代方案 ```sql SELECT id, DISTINCT name FROM A; -- 错误的用法 ``` 在 SQL 中,`DISTINCT` 必须放置在 `SELECT` 语句的最前面,不能单独应用于某一个字段。如果想要获取 `name` 的唯一...

    MySQL不支持INTERSECT和MINUS及其替代方法

    在SQL查询中,`INTERSECT` 和 `MINUS` 是两种用于集合...理解这些替代方法不仅有助于在MySQL中编写高效的查询,也有助于对SQL集合操作的深入理解。在实际开发中,应根据数据量、性能需求以及具体场景选择合适的方法。

    Django 解决distinct无法去除重复数据的问题

    在其他数据库中,例如Oracle或MySQL,可以使用序列来替代`IDENTITY`函数。 #### 实例分析 根据上述方法,如果需要获取`Prodou_id`和`FinalDye`两个字段的不重复记录,可以编写如下SQL语句: ```sql SELECT MAX(id...

    sqlserver中distinct的用法(不重复的记录)

    5. **替代方法**: 有时,可以使用 `GROUP BY` 或 `JOIN` 操作来代替 `DISTINCT`,以提高性能。例如,如果你想要得到每个唯一名字的最小id,可以使用 `MIN(id)` 而不是 `DISTINCT`: ``` SELECT MIN(id), name ...

    MySQL关键字Distinct的详细介绍

    `GROUP BY`可以用来对特定列进行分组并计算每个组的聚合函数,如`COUNT()`或`SUM()`。对于去除重复值,你可以结合`GROUP BY`和`HAVING COUNT(*) = 1`来达到目的,如下: ```sql SELECT name, phone FROM test ...

    lambda使用详解

    Stream 的中间方法包括 filter、map、distinct 等,而完结方法包括 collect、reduce 等。 lambda 表达式和 Stream 语法是 Java8 中的两个主要特性,它们可以将业务功能简洁的实现,并提高代码的可读性和性能。

    oracle常用的100个函数

    23. **NVL()** / **NVL2()**:如果表达式为NULL,则返回指定的替代值。 24. **COALESCE()**:返回第一个非NULL的参数。 25. **CASE**:用于条件判断和计算。 26. **SYSDATE**:返回当前日期和时间。 27. **ADD_...

    oracle实现行转列功能,并使用逗号进行隔开拼接,成为一条数据.pdf

    LISTAGG 函数是 Oracle 11g 及更高版本中引入的,用于替代 WM_CONCAT 函数。 示例代码: ```sql SELECT sfc_no, LISTAGG(mark_operation_id, ',') WITHIN GROUP (ORDER BY mark_operation_id) FROM bp_marking ...

    DK1.8 新特性使用详解.docx

    在给定的示例中,`filterProductByPredicate`方法接受一个`MyPredicate<Product>`参数,这是一个函数式接口,它的`test`方法用于测试产品是否满足条件。在`test4()`测试方法中,我们看到如何使用lambda表达式 `(p) -...

    Oracle SQL性能优化方法研究.docx

    例如,使用 DISTINCT 关键字可以删除重复记录。 用 TRUNCATE 替代 DELETE: 用 TRUNCATE 替代 DELETE 可以提高查询速度和减少磁盘空间占用。TRUNCATE 语句可以快速删除大量数据,而 DELETE 语句需要逐行删除数据,...

    常见sql 优化的方法

    DECODE函数在某些情况下可以替代复杂的CASE WHEN结构,提高代码可读性和执行效率。 #### 9. 减少函数调用 函数调用通常比简单的算术或比较操作消耗更多资源。尽可能减少函数调用次数,尤其是在循环和嵌套查询中。 ...

    java8新特性(Stream,lambda等)

    Lambda表达式是Java 8的另一大革新,它允许函数作为方法参数,或者在没有具体方法名的情况下定义匿名函数。Lambda表达式的语法简洁,可以替代传统的匿名内部类。Lambda表达式由三部分组成:参数列表、箭头符号和函数...

    ORACLE应用性能与安全开发建议50条

    19. **EXISTS替代DISTINCT**:在需要检查唯一性的场景中,用EXISTS替代DISTINCT可以提高性能,因为它只需要找到一个匹配项。 以上是Oracle应用开发中的一些关键性能和安全建议,实践中应结合具体业务场景灵活运用,...

    实验07_统计查询和集合查询1

    问题与思考部分引导学生探索集合查询的替代方法,以及理解`WHERE`子句与`HAVING`子句的区别。`WHERE`子句用于初步筛选满足条件的记录,而`HAVING`子句则在`GROUP BY`后的分组上施加条件,它们分别作用于原始数据和...

    如何删除表中重复数据

    以上介绍了三种删除表中重复数据的方法:使用临时表、使用子查询以及使用`ROW_NUMBER()`函数。不同的数据库系统可能支持的功能不同,因此在实际操作时需要根据所使用的数据库类型选择合适的方法。同时,在执行任何...

Global site tag (gtag.js) - Google Analytics