今天在论坛上看到一个面试题,是说有什么办法可以替代distinct,得到同样的结果。答案都被大家说的差不多了,发现挺有意思的,就记录一下:
SQL> select num from t1;
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 ...)的替代方法,该方法对于大量数据通常会以排序和不良性能而告终。 职能 有两个多态聚合函数,用于处理按值传递的固定长度数据类型(即,在64位计算机上最多为8B值): count_...
在Oracle数据库中,`WM_CONCAT`函数是一个非常实用的工具,它允许我们将多个行的数据合并成一个字符串,但是这个函数在Oracle 11g R2版本之后被标记为弃用,不再推荐使用。为了应对这个问题,开发者们经常需要自定义...
完美解决distinct中使用多个字段的方法,完美解决distinct中使用多个字段的方法完美解决distinct中使用多个字段的方法完美解决distinct中使用多个字段的方法完美解决distinct中使用多个字段的方法
Oracle函数在数据库查询和数据分析中扮演着至关重要的角色,尤其是一些著名的分析函数,它们能够帮助我们进行复杂的统计计算和数据处理。在本篇中,我们将深入探讨几个关键的分析函数,包括AVG、SUM、COUNT、FIRST_...
`Distinct()`方法是C# LINQ中用于去除重复元素的关键操作,而在EFCore中,它可以应用于数据库查询来过滤掉重复记录。 首先,让我们深入理解`Distinct()`方法。在C#中,`Distinct()`方法通过比较元素的默认等价关系...
使用 DISTINCT 关键字可以与 COUNT 函数结合使用,以统计表中唯一值的数量。例如: ``` SELECT COUNT(DISTINCT name) FROM A; ``` 这条语句将返回表 A 中 name 列的所有唯一值的数量。注意,这条语句只能统计单个...
`DISTINCT`通常与`GROUP BY`和聚合函数(如`COUNT`, `SUM`, `AVG`, `MIN`, `MAX`)一起使用,用于计算每个分组的唯一值。例如,计算每个部门的员工数量: ```sql SELECT DISTINCT department, COUNT(*) AS employee...
最后,DISTINCT关键字可以与其他函数结合使用,例如COUNT、GROUP_CONCAT等函数,以实现更复杂的查询需求。 在本文中,我们可以看到,作者尝试使用DISTINCT关键字来查询不重复的记录,但是却遇到了许多问题。作者...
另外,`DISTINCT`也可以与聚合函数结合使用,如`COUNT()`,以计算不同值的数量: ```sql SELECT COUNT(DISTINCT department) FROM employee; ``` 这将返回`employee`表中不同部门的总数,而不是所有部门的员工数量。...
在MySQL数据库中,优化`DISTINCT`操作是一个关键的性能提升策略,特别是在处理大量数据时。上述场景中,用户遇到了一个问题:对一个10G以上的单表`user_access_xx_xx`执行`SELECT COUNT(DISTINCT nick)`以统计唯一...
此外,`DISTINCT`关键字常与组函数一起使用,用于去除重复值,例如`COUNT(DISTINCT column_name)`会计算唯一值的数量。 总的来说,掌握PL/SQL的单行函数和组函数对于数据库开发和查询优化至关重要。理解它们的用法...
`distinct()`方法用于去除Stream中的重复元素,而`sorted()`可以对Stream中的元素进行排序,还可以接受一个自定义的Comparator进行定制排序。 并行流(Parallel Streams)是Stream API的一个强大功能,它利用多核...
MySQL通常使用GROUPBY(本质上是排序动作)完成DISTINCT操作,如果DISTINCT操作和ORDERBY操作组合使用,通常会用到临时表.这样会影响性能. 在一些情况下,MySQL可以使用索引优化DISTINCT操作,但需要活学活用.本文涉及一个...
SQL 函数大全 SQL 函数大全是指在 SQL 语言中所使用的各种函数,它们可以帮助开发者更方便地处理数据、进行计算、转换数据类型等。下面是 SQL 函数大全的详细说明: 一、内部函数 内部函数是 SQL 语言中最基本也...
`count` 方法用于计算集合中符合特定条件的文档数量。在MongoDB中,你可以直接调用`db.collection.count()`来获取一个集合中的所有文档数量,或者提供一个查询对象作为参数来统计满足该条件的文档数。例如,以下代码...
COUNTDISTINCT 函数对 COUNT 函数进行相异处理。 7. 最大值函数(MAX) MAX 函数计算满足数值表达式参数的行的最大值。 语法:MAX(numExpr) 其中:numExpr 求出数值的任意表达式。 示例:MAX("事实-销售订单头...
Oracle 函数大全是对 Oracle 数据库中各种函数的总结和分类,包括分析函数、聚合函数、转换函数、日期型函数、字符型函数、数值型函数和其他函数等,每种函数都有其特点和应用场景,可以根据实际情况选择合适的函数...
这种等价性意味着适用于`GROUP BY`查询的优化方法同样适用于带有`DISTINCT`子句的查询。因此,对于`DISTINCT`查询的更多优化细节,可以参考[MySQL官方文档]...
"Oracle 中的 ROWNUM 和 DISTINCT" Oracle 中的 ROWNUM 和 DISTINCT 是两个非常重要的关键词,它们在查询数据时发挥着至关重要的作用。然而,许多开发者在使用这两个关键词时,却常常会遇到一些不太理解的地方,...
例如,使用SUM函数时,可以加上distinct修饰符,以便于在求和过程中排除重复值。而total修饰符可以将计算扩展到所有数据集,而非仅仅当前可视数据集。在实际应用中,这些函数可以与QlikView的其他特性结合起来,如...