distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用 它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。
下面先来看看例子:
table表
字段1 字段2 id name 1 a 2 b 3 c 4 c 5 b
库结构大概这样,这只是一个简单的例子,实际情况会复杂得多。
比如我想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录。
select distinct name from table 得到的结果是:
----------
name a b c
好像达到效果了,可是,我想要得到的是id值呢?改一下查询语句吧:
select distinct name, id from table
结果会是:
----------
id name 1 a 2 b 3 c 4 c 5 b
distinct怎么没起作用?作用是起了的,不过他同时作用了两个字段,也就是必须得id与name都相同的才会被排除。。。。。。。
我们再改改查询语句:
select id, distinct name from table
很遗憾,除了错误信息你什么也得不到,distinct必须放在开头。难到不能把distinct放到where条件里?能,照样报错。
------------------------------------------------------------------------------------------------------------
下面方法可行:
select *, count(distinct name) from table group by name
结果:
id name count(distinct name) 1 a 1 2 b 1 3 c 1
最后一项是多余的,不用管就行了,目的达到。。。。。
group by 必须放在 order by 和 limit之前,不然会报错
|
相关推荐
在Oracle数据库中,`DISTINCT` 是一个非常重要的SQL关键字,用于从查询结果中去除重复的行。在本文中,我们将深入探讨`DISTINCT`的用法及其在不同情况下的应用。 首先,让我们看一个简单的例子。假设我们有一个名为...
在本例中,我们将通过创建一个名为`T_GIRL`的超女基本信息表,并插入一些测试数据来演示`DISTINCT`关键字的使用方法。 首先,我们创建了`T_GIRL`表,包含了超女的编号`id`、姓名`name`、颜值`yz`、身材`sc`、体重`...
oracle-distinct-的使用方法.doc
完美解决distinct中使用多个字段的方法,完美解决distinct中使用多个字段的方法完美解决distinct中使用多个字段的方法完美解决distinct中使用多个字段的方法完美解决distinct中使用多个字段的方法
### ORACLE函数及其用法详解 #### 概述 Oracle是一种广泛使用的数据库管理系统,它提供了丰富的内置函数,这些函数能够帮助开发者和数据库管理员更高效地处理数据。本文将详细介绍Oracle中的一些常用函数及其应用...
第五种方法是使用 Distinct 语句来查询和删除重复数据。例如,下面的语句可以查询出表中无重复记录的结果集: ```sql select distinct * from tableName ``` 这种方法可以根据所有字段来判断重复记录,并返回无重复...
优化`DISTINCT`的一种方法是使用`GROUP BY`子句,它可以将相同的数据分组,然后对每个组进行聚合操作,例如计算数量或求和。在某些情况下,可以将`DISTINCT`转换为`GROUP BY`,并结合聚合函数如`COUNT()`,以达到...
"Oracle 提高查询效率的方法" Oracle数据管理系统作为...提高 Oracle 查询效率需要从多方面考虑,包括优化 SQL 语句、创建合理的索引、选择合适的基础表、调整 WHERE 子句的顺序、避免使用 DISTINCT 和 ORDER BY 等。
- **使用EXPLAIN PLAN分析执行计划**:理解执行计划的各个部分,如访问方法、连接类型、排序操作等。 - **使用绑定变量**:避免全表扫描和提高查询效率。 - **避免不必要的排序和临时表**:优化GROUP BY、ORDER ...
本文将针对Oracle数据库的连接与使用方法,特别是针对初学者,进行详细讲解。 首先,我们关注的是sqlplus,它是Oracle提供的一个命令行工具,用于与数据库交互。sqlplus不仅适用于初学者,也深受经验丰富的DBA喜爱...
这篇指南主要涵盖Oracle数据库的基本查询操作,包括SQL语句的构造、算术表达式、列的别名、连接操作以及处理重复数据的方法。 1. **基本的SELECT语句**:在SQL中,`SELECT`语句用于从表中获取数据。`SELECT *`表示...
- DISTINCT关键字在Oracle中与LIMIT功能类似,可以结合ROWNUM来限制返回的行数。 - WHERE子句中的条件判断,Oracle通常使用代替,并且在处理日期和字符串时,可能需要调整比较运算符和格式。 5. **异常处理**: ...
1. 作为分析函数,类似于 row_number()、rank()、dense_rank() 等函数,使用方法相似: LISTAGG(合并字段, 连接符) WITHIN GROUP(ORDER BY 合并字段的排序) OVER(PARTITION BY 分组字段) 2. 作为聚合函数,类似于 ...
- 若要检查表是否有重复值,可以使用`DISTINCT`关键字查询,或使用`GROUP BY`结合`HAVING`来查找。 8. **源码和工具** - 针对标签中的"源码",在实际开发中,创建和管理唯一性通常涉及SQL脚本或编程语言(如Java...
Oracle SQL编写规范是指在编写SQL语句时的一些基本原则和方法,旨在提高SQL语句的执行效率和可读性。以下是Oracle SQL编写规范的详细解释: 1. 尽量用索引,特别在从大量数据中返回小部分数据时 使用索引可以大大...
#### 四、直接尝试收缩表空间的问题及解决方法 直接尝试收缩表空间时,可能会遇到错误ORA-03297:“文件包含在请求的RESIZE值以外使用的数据”。这是因为Oracle数据文件在有数据的情况下能够自动扩展,但无法自动...
Oracle SQL 中去除重复记录是数据库操作中的常见需求,但有时我们可能希望避免使用`DISTINCT`关键字,因为它可能会导致性能下降,特别是在处理大量数据或涉及多个字段时。`DISTINCT`关键字会去除所有查询结果中的...
在Oracle SQL的学习中,第一章基本查询语句介绍了如何从数据库中提取信息,包括SELECT语句的基本结构、选择列、过滤行(WHERE子句)、聚合函数(如COUNT, SUM, AVG, MAX, MIN)以及DISTINCT关键字的使用。...
### Oracle删除表中的重复数据方法 在Oracle中删除表中的重复数据,可以采用多种策略,但通常涉及创建一个临时表来保存去重后的数据,然后用这个临时表覆盖原始表。这种方法可以避免直接修改原表带来的风险,确保...