• SQL去重distinct方法解析


    关注我的公众号获取自动化视频教程:搬砖的小测试

    链接:https://pan.baidu.com/s/1ZXiWrytBLY4osCW6-d_-vQ 提取码:在公众号回复获取

    一 distinct

    含义:distinct用来查询不重复记录的条数,distinct来返回不重复字段的条数(count(distinct id),其原因是distinct只能返回他的目标字段,而无法返回其他字段

    用法注意:

    1.distinct 【查询字段】,必须放在要查询字段的开头,即放在第一个参数;

    2.只能在SELECT 语句中使用,不能在 INSERT, DELETE, UPDATE 中使用;

    3.DISTINCT 表示对后面的所有参数的拼接取 不重复的记录,即查出的参数拼接每行记录都是唯一的

    4.不能与all同时使用,默认情况下,查询时返回的就是所有的结果。

    1.1只对一个字段查重

    对一个字段查重,表示选取该字段一列不重复的数据。

    示例表: psur_list

    PLAN_NUMBER字段去重,语句:SELECT DISTINCT PLAN_NUMBER  FROM psur_list;

    结果如下:

    1.2多个字段去重

    对多个字段去重,表示选取多个字段拼接的一条记录,不重复的所有记录

    示例表: psur_list

    PLAN_NUMBER和PRODUCT_NAME字段去重,语句:SELECT DISTINCT PLAN_NUMBER,PRODUCT_NAME FROM psur_list;

    结果如下:

     

     期望结果:只对第一个参数PLAN_NUMBER取唯一值

    解决办法一: 使用 group_concat 函数

    语句:SELECT GROUP_CONCAT(DISTINCT PLAN_NUMBER) AS PLAN_NUMBER,PRODUCT_NAME FROM psur_list GROUP BY PLAN_NUMBER

    解决办法二:使用group by

    语句:SELECT PLAN_NUMBER,PRODUCT_NAME FROM psur_list GROUP BY PLAN_NUMBER

    结果如下:

    1.3针对null处理

    distinct不会过滤掉null值,返回结果包含null值

    表psur_list如下:

    对COUNTRY字段去重,语句:SELECT DISTINCT COUNTRY FROM psur_list

    结果如下:

     

    1.4与distinctrow同义

    语句:SELECT  DISTINCTROW COUNTRY FROM psur_list 

    结果如下:

     

     二 聚合函数中使用distinct

    在聚合函数中DISTINCT 一般跟 COUNT 结合使用。count()会过滤掉null项

    语句:SELECT COUNT(DISTINCT COUNTRY) FROM psur_list

    结果如下:【实际包含null项有4个记录,执行语句后过滤null项,计算为3】

    关注公众号:

  • 相关阅读:
    Find the Smallest K Elements in an Array
    Count of Smaller Number
    Number of Inversion Couple
    Delete False Elements
    Sort Array
    Tree Diameter
    Segment Tree Implementation
    Java Programming Mock Tests
    zz Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
    Algorithm about SubArrays & SubStrings
  • 原文地址:https://www.cnblogs.com/lixuefang69/p/10420186.html
Copyright © 2020-2023  润新知