oracle 12c GROUP BY 句
前一节记录了集合函数的用法,但是在使用集合函数时有些实行更细一些的集合化,这是需要使用GROUP BY 语句
基本使用用法
GROUP BY 语句需要放在WHERE句之后,ORDER BY 句之前。
select 列名,group函数(列名)
from 表名
[where 条件]
[group by group化使用的列列表]
[order by 排列顺序用的列]
GROUP BY 指定的可以是一个列表,组合的关系。
书写例子
select deptno,avg(sal)
from employees
group by deptno;
特别注意的点
- GROUP BY 句必须指定1以上(>=)的列作为集合化的条件
- GROUP BY句中不可以使用 列别名
- SELECT 句中选择的 列表仅可以是GROUP BY 句中指定的列,和集合函数中集合列
在此处两个结果的差距主要出现在SELECT 语句中是否制定了job,1中的结果可以的值,在同一个deptno 下有多个 job存在,而如果 只是按照deptno进行集合化的,可能出现的问题为不知应该显示哪一个job,本身也有逻辑问题。
- ORDER BY 和 GROUP BY 公用的场合,ORDER BY中的排序的列仅可以是GROUP BY 句中指定的列,和集合函数中集合列
- 有GROUP BY 句,并没有指定ORDER BY 句时。并没有特别的排序
- GROUP BY 指定时,集合函数的层级仅可以为2以下,单一函数没有限制