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






  • 相关阅读:
    wqy的ACM赛G朱柏庐
    可持久化数据结构
    LibreOJ#2362蚯蚓
    LibreOJ#2359天天爱跑步
    「Luogu2221」[HAOI2012]高速公路
    「Luogu4158」[SCOI2009]粉刷匠
    「Luogu4317」花神的数论题
    WC2019 游记
    最大权闭合子图模型
    「Luogu2762」太空飞行计划问题
  • 原文地址:https://www.cnblogs.com/zhangchenglzhao/p/3600007.html
Copyright © 2011-2022 走看看