select xxx_name, count(*) as counter
from table_y
where
where_condition
group by xxx_name
having
having_condition
order by
zzz
当我们看到一个类似上述的包含了where, group by, having, order by等关键字的SQL时,我们要首先要知道其执行顺序是怎样的,才能判断出其所表达的含义;
下面列出其执行顺序:
1. 根据where子句选择行;
2. 根据group by 子句组合行;
3. 为每个组计算分组函数的结果;
4. 根据having子句筛选组;
5. 根据order by子句中的分组函数的结果对组进行排序,order by必须使用分组函数或者使用Group by子句中指定的列;
下面看一个例子:
select CategoryName, count(*), AVG(Rating)
from BOOKSHELF
where Rating>1
group by CategoryName
having CategoryName like 'A%'
order by count(*) desc
我们现在知道,其执行顺序如下:
1.基于Where Rating>1 筛选出符合条件的行;
2.基于group by CategoryName 对筛选的结果进行分组;
3.为每个CategoryName组计算Count(*)
4. 基于having CategoryName like 'A%'留下符合条件的组
5. 根据order by 的条件对剩下的行组进行排序,SQL中的count(*)也是分组函数
分享到:
相关推荐
oracle学习笔记-入门基础-01-张园
资源名称:Oracle学习笔记-日常应用、深入管理、性能优化内容简介:Oracle学习笔记-日常应用、深入管理、性能优化Oracle 11g是最具代表性的高端关系型数据库管理系统,它在世界各地的大型商务数据库应用系统中被广泛...
ORACLE学习笔记-ORACLE(基本命令).doc,ORACLE学习笔记-ORACLE(基本命令).doc
Oracle学习笔记--稍复杂的查询和分页
Oracle Database 21c 是最新的版本;...oracle-database-ee-21c-1.0-1.ol8文件分割成 三个 压缩包,必须集齐 三个 文件后才能一起解压一起使用: Oracle Database 21c (oracle-database-ee-21c-1.0-1.ol8.part3.rar) ...
ORACLE学习笔记 基础的命令,可以学习
自学笔记--oracle自学笔记-视频实例整理
oracle精华尽在于此,对于oracle初学者来说是一本难得的笔记
oracle笔记二--plsql 编程oracle笔记二--plsql 编程oracle笔记二--plsql 编程oracle笔记二--plsql 编程oracle笔记二--plsql 编程oracle笔记二--plsql 编程
这个笔记是学习oracle数据库过程中整理出来的,比较详细,适合于初学者。 │ oracle与tomcat端口冲突.txt │ Oracle学习笔记.pdf │ Oracle学习笔记.wps │ 安装Oracle后myEclipse不能正常使用.txt │ 手工配置...
学习oracle的读书笔记,整理基本操作与总结。
Oracle 11g是最具代表性的高端关系型数据库管理系统,它在世界各地的大型商务数据库应用系统中被广泛应用。本书设计了大量的应用情景,介绍了数据库管理员和开发人员常用的管理、维护和优化Oracle 11g数据库的技术和...
oracle-xe-11.2.0-1.0.x86_64.rpm
oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
学习韩顺平玩转oracle视频笔记--PLSQL
在Linux上安装oracle数据库,... 在oracle linux 6_64bit上,提供了oracle-rdbms-server-11gR2-preinstall包,可以自动化的将需要安装的rpm包,需要调整的内核参数自动化的处理,对DBA安装数据库确实节省了不少的时间。