提高group by语句的效率

简介: 提高group by语句的效率

1、反例

先分组,再过滤

select job, avg(salary) from employee

group by job

having job ='develop' or job = 'test';

2、正例

先过滤,后分组

select job,avg(salary) from employee

where job ='develop' or job = 'test'

group by job;

3、理由

可以在执行到该语句前,把不需要的记录过滤掉

 

相关文章
|
4月前
|
缓存 算法 关系型数据库
写出好的Join语句,前提你得懂这些!
写出好的Join语句,前提你得懂这些!
|
9月前
|
SQL 关系型数据库 MySQL
SELECT * 效率低
SELECT * 效率低
70 0
SELECT * 效率低
GROUP BY语句规定
GROUP BY语句规定
80 0
【SQL开发实战技巧】系列(六):从执行计划看NOT IN、NOT EXISTS 和 LEFT JOIN效率,记住内外关联条件不要乱放
从执行计划看NOT IN、NOT EXISTS 和 LEFT JOIN效率,还是那就话,别死记网上结论、在使用内外关联时,特别是简写方式时记住关联条件不要乱放!【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。
【SQL开发实战技巧】系列(六):从执行计划看NOT IN、NOT EXISTS 和 LEFT JOIN效率,记住内外关联条件不要乱放
|
SQL 存储 Oracle
table()函数的使用,提高查询效率
table()函数的使用,提高查询效率
270 0
table()函数的使用,提高查询效率
|
SQL 数据挖掘 Python
SQL练习:2(简单)+1(中等),常规题(group by\order by\avg...)
SQL练习:2(简单)+1(中等),常规题(group by\order by\avg...)
213 0
SQL练习:2(简单)+1(中等),常规题(group by\order by\avg...)
|
SQL 网络协议 关系型数据库
为什么大家都说 SELECT * 效率低?
无论在工作还是面试中,关于SQL中不要用“SELECT *”,都是大家听烂了的问题,虽说听烂了,但普遍理解还是在很浅的层面,并没有多少人去追根究底,探究其原理。
119 0
为什么大家都说 SELECT * 效率低?
九、提高group by语句的效率
九、提高group by语句的效率
347 0
|
SQL
GROUP BY 语句
GROUP BY 语句
88 0
|
SQL 缓存 算法
写出好的Join语句,前提你得懂这些
因为驱动结果集越大,意味着需要循环的次数越多,也就是说在被驱动结果集上面所 需要执行的查询检索次数会越多。比如,当两个表(表 A 和 表 B) Join 的时候,如果表 A 通过 WHERE 条件过滤后有 10 条记录,而表 B 有 20 条记录。如果我们选择表 A 作为驱动表,也就是被驱动表的结果集为 20,那么我们通过 Join 条件对被驱动表(表 B)的比较过滤就会有 10 次。反之,如果我们选择表 B 作为驱动表,则需要有 20 次对表 A 的比较过滤。小贴士1:驱动表的定义:当进行多表连接查询时,1.指定了联接条件时,满足查询条件的记录行数少的表为驱动表,2.未指定联接条件时,行数少