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 的作用域是 所有的查询字段, 是对 该条查询结果数据 进行 去重复(比较的是结果集,即每条记录),而不是对某个字段。如果上面的名字相同的两条数据如果有查询的某个字段不同,则按照不同结果处理
group by 和 distinct 的区别的更多相关文章
- sql左外连接、右外连接、group by、distinct(区别)、intersect(交叉)、通配符、having
连接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定连接条件.WHERE和HAVING子句也可以包含搜索条件,以进一步筛选连接条件所选的行. 连接可分为以下几类 ...
- hive里的group by和distinct
hive里的group by和distinct 前言 今天才明确知道group by实际上还是有去重读作用的,其实细想一下,按照xx分类,肯定相同的就算是一类了,也就相当于去重来,详细的看一下. gr ...
- group by和distinct语句的执行顺序
同一条语句之中,如果同时有group by和distinct语句,是先group by后distinct,还是先distinct后group by呢? 先说结论:先group by后distinct. ...
- MYSQL 行转列 以及基本的聚合函数count,与group by 以及distinct组合使用
在统计查询中,经常会用到count函数,这里是基础的 MYSQL 行转列 以及基本的聚合函数count,与group by 以及distinct组合使用 -- 创建表 CREATE TABLE `tb ...
- HIVE点滴:group by和distinct语句的执行顺序
同一条语句之中,如果同时有group by和distinct语句,是先group by后distinct,还是先distinct后group by呢? 先说结论:先group by后distinct. ...
- MySQL中Group By,distinct使用注意事项
mysql> select * from test; +----+-------+------+-------+ | id | name | age | class | +----+------ ...
- group by 替代distinct
SQL> select distinct employee_id,first_name from test1; 107 rows selected. Execution Plan ------- ...
- 标量子查询优化(用group by 代替distinct)
标量子查询优化 当使用另外一个SELECT 语句来产生结果中的一列的值的时候,这个查询必须只能返回一行一列的值.这种类型的子查询被称为标量子查询 在某些情况下可以进行优化以减少标量子查询的重复执行,但 ...
- group by 和 distinct 去重比较
distinct方式就是两两对比,需要遍历整个表.group by分组类似先建立索引再查索引,所以两者对比,小表destinct快,不用建索引.大表group by快.一般来说小表就算建索引,也不会慢 ...
随机推荐
- SQLserver查看索引使用情况
查索引使用情况: https://www.cnblogs.com/sunliyuan/p/6559354.html select db_name(database_id) as N'TOPK_T ...
- angular 路由动态加载JS文件
纯属分享 //把下面代码放在新建JS文件里,引入在头部 //angural路由功能--一个路由动态加载JS (function (name, context, definition) { if (ty ...
- shiro 注解式前提
<aop:config proxy-target-class="true"></aop:config> <bean class="org.a ...
- jsp button onclick
<input type="button" value="MD5哈希转换" onclick="javascript:document.getEle ...
- FireDAC FDQuery
http://docwiki.embarcadero.com/RADStudio/XE6/en/TFDMemTable_Questions#Q:_How_can_I_copy_all_records_ ...
- 16 python 异常处理
1.了解什么是异常处理 异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止), 在python中,错误触发的异常如下 2.了解 ...
- visibility和display
visibility: hidden----将元素隐藏,但是在网页中该占的位置还是占着.display: none----将元素的显示设为无,即在网页中不占任何的位置.
- python 文件移动
python实现文件移动: import shutil shutil.move("original_path", "new_folder") # move fi ...
- 多字段非连续模糊查询java实现
工作需要,写了一个实现数据库多字段模糊查询的方法,背景是输入用户的信息,如用户的userid,姓名,拼音等,可以查出相关的用户 具体如下 1. 操作一张表,可以设置表前缀 2. 可以实现中文的不连续查 ...
- MYSQL查询优化:show profile
为避免之前已经把 SQL 存放在 QCACHE 中, 建议在执行 SQL 时, 强制 SELECT 语句不进行 QCACHE 检测.这样可以提交分析的准确性 mysql> select sql_ ...