oracle 12c GROUP BY 句

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以下,单一函数没有限制
    2层以下

猜你喜欢

转载自blog.csdn.net/qq1301709072/article/details/80642103