首页 > 其他 > 详细

group by 和 distinct 的区别

时间:2014-03-14 17:36:38      阅读:669      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
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 进行分组 , 结果显示名字不重复的一组数据。如果存在两条名字相同的数据,则只取出第一条数据。

bubuko.com,布布扣
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 不同)
bubuko.com,布布扣

bubuko.com,布布扣
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 条件 相同。
bubuko.com,布布扣

 


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

 







bubuko.com,布布扣

group by 和 distinct 的区别,布布扣,bubuko.com

group by 和 distinct 的区别

原文:http://www.cnblogs.com/zhangchenglzhao/p/3600007.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!