zoukankan      html  css  js  c++  java
  • distinct 与group by 去重

       mysql中常用去重复数据的方法是使用 distinct  或者group by ,以上2种均能实现,但2者也有不同的地方。

    distinct 特点:

    如:select  distinct   name, sex,from tb_students  这个sql的语法中,查询 tb_students  表中 name, sex,并去除名字和性别都重复的学生:

      1、distinct 只能放在查询字段的最前面,不能放在查询字段的中间或者后面。

    备注:select   sex,distinct   name from tb_students  这种写法是错误的,distinct   只能写在所有查询字段的前面

      2、distinct 对后面所有的字段均起作用,即 去重是查询的所有字段完全重复的数据,而不是只对 distinct   后面连接的单个字段重复的数据。

    备注:也就是 distinct   关键字对 name, sex 都起作用,去重姓名、性别完全一样的学生,如果姓名相同、性别不同是不会去重的。

      3、要查询多个字段,但只针对一个字段去重,使用distinct去重的话是无法实现的。

     

    group by 特点:

      1、一般与聚类函数使用(如count()/sum()等),也可单独使用。

      2、group by 也对后面所有的字段均起作用,即 去重是查询的所有字段完全重复的数据,而不是只对 group by后面连接的单个字段重复的数据。

      3、查询的字段与group by 后面分组的字段没有限制。

    特别说明:在oracle中使用group by时,查询的字段必须是group by 分组的字段和聚类函数。如select name,sex from tb_students group by name这个sql

        语法在oracle中是错误的,因为sex 不在group by 分组后面;但在mysql中是支持的。

  • 相关阅读:
    C#单例模式的三种写法转载
    silverlight 添加配置项
    oracle 如何实现上一条、下一条、查找不连续的值
    一个IT民工眼中的保障房不能保证公平,赞成取消保障房
    c# where 转载
    进度条 silverlight
    中国软件公司我深表认同:软硬结合
    计算经纬度两点之间的距离(c#)
    如何高效使用SQLITE .NET (C#)
    如何判断系统是否安装了flash插件
  • 原文地址:https://www.cnblogs.com/whitemouseV2-0/p/11226444.html
Copyright © 2011-2022 走看看