`

sql中distinct的用法

sql 
阅读更多
    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

最后一项是多余的,不用管就行了,目的达到

详细出处参考:http://www.jb51.net/article/24717.htm
分享到:
评论

相关推荐

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

    MySQL 中 DISTINCT 用法详解 MySQL 中的 DISTINCT 关键字用于返回唯一不同的值,避免重复值的出现。当我们在查询表中数据时,可能会遇到重复值的情况,这时使用 DISTINCT 关键字可以帮助我们返回唯一的值。 ...

    小度写范文【SQL中distinct的用法】mysql中distinct用法模板.docx

    在MySQL中,`DISTINCT`的使用方式和功能与其他SQL数据库系统(如SQL Server、Access等)大体相同,但有一些细微的差别。以下是对`DISTINCT`用法的详细解释: 1. **单列去重**: 当我们需要从一个表中获取唯一的某...

    小度写范文【SQL中distinct的用法】mysql中distinct用法模板.pdf

    以下是关于`DISTINCT`在SQL中的具体用法和一些注意事项。 1. **单列去重** 当我们只对单一列应用`DISTINCT`时,它将去除该列中的重复值。例如,在表`A`中,如果我们执行`SELECT DISTINCT name FROM A`,那么返回的...

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

    在SQL查询中,`DISTINCT` 是一个非常重要的关键字,用于去除结果集中的重复行,只保留唯一的记录。本文将详细解析 `DISTINCT` 的四种典型用法,并通过实例进行说明,帮助理解如何有效地利用 `DISTINCT` 处理数据。 ...

    SQL select distinct的使用方法

    本篇文章将详细讲解`DISTINCT` 的使用方法,并结合具体的例子进行阐述。 首先,让我们来看一个基本的 `DISTINCT` 用法。假设我们有一个名为 `A` 的表格,其中包含以下数据: ``` | name | id | | ------ | -- | | ...

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

    总的来说,`DISTINCT` 在 SQL Server 中是一个强大的工具,但使用时需要谨慎,特别是在处理大数据量时,要考虑到其对性能的影响。合理地使用索引、聚合函数和其他查询技术,可以有效地提高查询效率并减少资源消耗。

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

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

    sql中exists的用法

    SQL 中 EXISTS 的用法简介 exists 是 SQL 中最常用的子查询操作符之一,用于检测子查询是否返回至少一个记录。exists 的使用场景非常广泛,包括对多表之间的关系进行查询、检测记录的存在性等。 在 SQL 中,exists...

    分析MySQL中优化distinct的技巧

    MySQL的执行计划显示,原始SQL语句`SELECT COUNT(DISTINCT nick) FROM user_access`使用了`ind_user_access`索引进行全扫描,这意味着数据库需要遍历整个索引来获取不重复的`nick`值。这显然是低效的,因为即使使用...

    select distinct用法

    select distinct用法 在SQL中,SELECT语句中的DISTINCT关键字的用法是一...DISTINCT关键字的用法是一个非常重要的知识点,在实际应用中,我们需要了解和掌握DISTINCT关键字的使用方法和限制,以便更好地解决实际问题。

    SQL中distinct 和 row_number() over() 的区别及用法

    在SQL中,`DISTINCT`和`ROW_NUMBER() OVER()`都是用来处理数据集的独特性,但它们的用途和机制有所不同。`DISTINCT`是一个关键字,主要用于去除查询结果中的重复行,确保返回的每一行在指定的列上都是唯一的。而`ROW...

    使用Distinct查询.rar

    `DISTINCT`是SQL中用于获取唯一数据的重要工具,可以单独使用,也可以与`WHERE`, `GROUP BY`等配合使用。在实际应用中,理解其工作原理,结合索引和优化策略,能够有效提升查询效率,同时满足业务需求。正确使用`...

    sql/having用法

    SQL中的HAVING子句用法 HAVING子句是SQL中的一种子句,用于对 GROUP BY 子句所确定的行组进行控制。HAVING 子句条件中只允许涉及常量、聚组函数或 GROUP BY 子句中的列。在 Oracle 中,HAVING 子句是对 GROUP BY ...

    oracle中distinct的用法详解

    在Oracle数据库中,`DISTINCT` 是一个非常重要的SQL关键字,用于从查询结果中去除重复的行。在本文中,我们将深入探讨`DISTINCT`的用法及其在不同情况下的应用。 首先,让我们看一个简单的例子。假设我们有一个名为...

    SQL SELECT DISTINCT 语句

    SQL中的`SELECT DISTINCT`语句是用于从查询结果中去除重复的行,只保留唯一的、不重复的值。这个功能在处理数据时非常有用,特别是当你需要统计或分析不重复的记录时。以下是对`SELECT DISTINCT`语句的详细解释和...

    23.Oracle的distinct关键字1

    在本例中,我们将通过创建一个名为`T_GIRL`的超女基本信息表,并插入一些测试数据来演示`DISTINCT`关键字的使用方法。 首先,我们创建了`T_GIRL`表,包含了超女的编号`id`、姓名`name`、颜值`yz`、身材`sc`、体重`...

Global site tag (gtag.js) - Google Analytics