zoukankan      html  css  js  c++  java
  • group by 和 distinct 的区别

    SELECT
        fs.card_id,
        fs. NAME,
        fs.email,
        fs.phone_num,
        fs.weixin_num,
        fs.permission,
        fs.open_id
    FROM
        fs_card fs
    WHERE
        fs.open_id IS NOT NULL
    GROUP BY fs.name

    //group by 是 按照 name 进行分组 , 结果显示名字不重复的一组数据。如果存在两条名字相同的数据,则只取出第一条数据。

    SELECT
        fs.card_id,
        fs. NAME,
        fs.email,
        fs.phone_num,
        fs.weixin_num,
        fs.permission,
        fs.open_id
    FROM
        fs_card fs
    WHERE
        fs.open_id IS NOT NULL
    GROUP BY fs.name having COUNT(fs.card_id)= 1

    //加上count (fs.card_id)=1 条件后会把 具有相同名字的数据 去除(默认这两条数据的card_id 不同)
    
    
    SELECT
        fs.card_id,
        fs. NAME,
        fs.email,
        fs.phone_num,
        fs.weixin_num,
        fs.permission,
        fs.open_id
    FROM
        fs_card fs
    WHERE
        fs.open_id IS NOT NULL
    GROUP BY fs.name having COUNT(fs.card_id)>= 1

    //查询结果和 不加 having 条件 相同。
    
    
    SELECT distinct
        fs.card_id,
        fs. NAME,
        fs.email,
        fs.phone_num,
        fs.weixin_num,
        fs.permission,
        fs.open_id
    FROM
        fs_card fs
    WHERE
        fs.open_id IS NOT NULL
    GROUP BY fs.name having COUNT(fs.card_id)= 1

    //distinct 的作用域是 所有的查询字段, 是对 该条查询结果数据 进行 去重复(比较的是结果集,即每条记录),而不是对某个字段。如果上面的名字相同的两条数据如果有查询的某个字段不同,则按照不同结果处理
    
    
    






  • 相关阅读:
    IOS debug网络PonyDebugger 实践篇
    基于S7-200的PLC对里程轮(增量式码盘)解码的应用
    SICP 习题 (1.14)解题总结
    TQ210裸机编程(2)——LED流水灯
    DP练习(初级):ZigZag
    java 十六进制数的转换
    Oracle DB 执行表空间时间点恢复
    html中文乱码(解决办法)
    html的列表
    MySQL的模糊搜索
  • 原文地址:https://www.cnblogs.com/zhangchenglzhao/p/3600007.html
Copyright © 2011-2022 走看看