`

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

   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之前,不然会报错
分享到:
评论

相关推荐

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

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

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

    在SQL查询中,`DISTINCT`关键字是一个非常重要的部分,它允许我们从结果集中去除重复的行或特定列的值。在MySQL中,`DISTINCT`的使用方式和功能与其他SQL数据库系统(如SQL Server、Access等)大体相同,但有一些...

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

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

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

    在SQL查询中,`DISTINCT`关键字是一个非常重要的部分,它允许我们从查询结果中去除重复的记录,只返回唯一的、不同的值。在MySQL中,`DISTINCT`的使用方式非常灵活,可以从单个列到多个列进行操作,也可以与聚合函数...

    SQL select distinct的使用方法

    在SQL查询中,`DISTINCT` 是一个非常重要的关键字,它用于从结果集中去除重复的行,只保留唯一的记录。本篇文章将详细讲解`DISTINCT` 的使用方法,并结合具体的例子进行阐述。 首先,让我们来看一个基本的 `...

    alibaba-developer#MaxCompute#解决MaxCompute SQL count distinct多个字段

    解决MaxCompute SQL count distinct多个字段的方法按照惯性思维,统计一个字段去重后的条数我们的sql写起来如下:Distinct的作用

    分析MySQL中优化distinct的技巧

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

    SQL 语法 SQL 总结 SQL教程

    SQL distinct SQL where SQL AND & OR SQL Order By SQL insert SQL update SQL delete SQL 高级 SQL Top SQL Like SQL 通配符 SQL In SQL Between SQL Aliases SQL Join SQL Inner Join SQL Left ...

    sql学习 索引特性之有序优化distinct.sql

    sql学习 索引特性之有序优化distinct.sql

    使用Distinct查询.rar

    在SQL语言中,`DISTINCT`关键字是一种非常重要的查询方式,它用于消除查询结果中的重复行,从而确保返回的数据是唯一的。本教程将深入探讨如何使用`DISTINCT`查询,以及在不同场景下它的应用。 一、DISTINCT基本...

    SQL SELECT DISTINCT 语句

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

    distinct的使用.docx

    在SQL语言中,`DISTINCT`关键字是一个非常重要的部分,特别是在数据检索时,它帮助我们去除结果集中的重复行,确保返回的每一行都是唯一的。本文将深入探讨`DISTINCT`在Oracle数据库中的使用,以及如何与其他SQL元素...

    【SQL基础(一)】【SQL简介+SQL 语法+SQL SELECT 语句+SQL SELECT DISTINCT 语句】

    文章目录SQL简介SQL是什么SQL做什么RDBMSSQL 语法数据库表SQL 语句SQL 语句后面的分号DML 和 DDLSQL SELECT 语句SQL SELECT DISTINCT 语句 SQL简介 SQL是用于访问何处理数据库的标准的计算机语言 SQL是什么 SQL是...

    oracle sql 去重复记录不用distinct如何实现

    用distinct关键字只能过滤查询字段中所有记录相同的(记录集相同),而如果要指定一个字段却没有效果,另外distinct关键字会排序,效率很低 。 select distinct name from t1 能消除重复记录,但只能取一个字段,...

    LINQ to SQL手册

    **LINQ to SQL** 是 .NET Framework 中的一个技术,它允许开发者使用 C# 或 VB.NET 语言的查询表达式语法来操作数据库。本手册详细介绍了使用 LINQ to SQL 进行数据查询、操作和更新的各种方法,涵盖了从基础到高级...

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

    在SQL Server中,`DISTINCT` 是一个非常重要的关键字,用于从查询结果中去除重复的行,确保返回的每一行都是唯一的。然而,正如描述中所提到的,当处理大量数据时,过度依赖 `DISTINCT` 可能会影响查询性能,因为它...

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

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

    SQLQuery2.sql

    sql数据类型,MYSQL,SQLSERVER,ORACLE练习SQL,各种数据类型,SQL SELECT DISTINCT 语句,SQL AND & OR 运算符,SQL AND & OR 运算符

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

    ### DISTINCT优化之MySQL官方文档翻译解析 #### 一、引言 在数据库查询操作中,经常需要使用`DISTINCT`关键字来去除重复记录,确保结果集中的每一条记录都是唯一的。然而,在某些场景下,使用`DISTINCT`可能会导致...

    23.Oracle的distinct关键字1

    Oracle数据库中的`DISTINCT`关键字是一个非常重要的SQL查询语句组成部分,它用于去除查询结果中的重复行,确保返回的每一条记录都是唯一的。在本例中,我们将通过创建一个名为`T_GIRL`的超女基本信息表,并插入一些...

Global site tag (gtag.js) - Google Analytics