`
leo1211
  • 浏览: 138243 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SQL中distinct的用法

阅读更多


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

相关推荐

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

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

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

    distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不...其原因是distinct只能返回它的目标字段,而无法返回其它字段,接下来通过本篇文章给大家分享SQL中distinct的用法,需要的朋友可以参考下

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

    。。。

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

    。。。

    SQL select distinct的使用方法

    主要介绍了SQL中distinct的用法 ,需要的朋友可以参考下

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

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

    sql中exists的用法

    sql server中exists的用法简介

    select distinct用法

    sql中select语句中的distinct的用法

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

    distinct这个关键字用来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说...

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

    在咱们编写 SQL 语句操作数据库中的数据的时候,有可能会遇到一些不太爽的问题,例如对于同一字段拥有相同名称的记录,我们只需要显示一条,但实际上数据库中可能含有多条拥有相同名称的记录,从而在检索的时候,...

    Microsoft_SQL_Server_2005技术内幕:T-SQL查询.pdf

    使用方法论优化查询;在查询中用TOP选项修改数据;用递归逻辑、具体化路径或嵌套集合解决方案查询特殊的数据结构;通过逻辑难题提高你的逻辑能力并掌握查询问题的核心等。  你将学习到如何:  理解逻辑和物理的...

    mysql中去重 distinct用法

    在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重复的记录,但是实际中我们往往用distinct来返回不重复字段的条件(count(distinct id)),其原因是distinct...

    Excel_VBA+ADO+SQL入门教程看见星光.docx

    2. 执行 SQL 语句:使用 ADO 的 Execute 方法执行 SQL 语句,返回结果集。 3. 处理结果:使用 VBA 语言处理结果集,例如将结果写入到 Excel 表格中。 三、字段查询 字段查询是指从数据库中查询指定的字段数据。...

    Ling to sql

    LINQ to SQL 是一种强大的数据查询语言,允许开发者使用 C# 或 VB.NET 等语言来查询和操作数据库。下面是 LINQ to SQL 的语法及实例大全: Where 操作 Where 操作是 LINQ to SQL 中最基本的查询操作,它用于从...

    MySQL中distinct和count(*)的使用方法比较

    首先对于MySQL的DISTINCT的关键字的一些用法: 1.在count 不重复的记录的时候能用到,比如SELECT COUNT( DISTINCT id ) FROM tablename;就是计算talbebname表中id不同的记录有多少条。 2,在需要返回记录不同...

    SQL21日自学通

    在SQL*PLUS 中使用变量453 DEFINE 454 ACCEPT 455 NEW_VALUE457 DUAL 表458 DECODE 函数459 日期转换462 运行一系列的SQL 文件465 在你的SQL 脚本中加入注释466 高级报表467 总结469 问与答469 校练场469 练习470 第...

    mongodb中使用distinct去重的简单方法

    MongoDB的destinct命令是获取特定字段中不同值列表。该命令适用于普通字段,数组字段和数组内嵌文档. mongodb的distinct的语句: 代码如下: db.users.distinct(‘last_name’) 等同于 SQL 语句: 代码如下: ...

Global site tag (gtag.js) - Google Analytics