zoukankan      html  css  js  c++  java
  • 关于oracle中的group by、having以及order by

       1.顺序

             如果在select语句中同时包含group by、having、order by,那么他们的顺序是group by——having——order by。

     

       2.关于聚合函数(分组函数)

                 在select 语句中可以使用group by 子句将行划分成较小的组,然后使用聚组函数返回每一个组的汇总信息,

        另外,可以使用having子句 限制返回的结果集。group by 子句可以将查询结果分组,

        并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询结果。

        在带有group by 子句的查询语句中,在select 列表中指定的列要么是group by 子句中指定的列,

        要么包含聚组函数

        select maxsal),job emp group by job;

        (注意maxsal),jobjob并非一定要出现,但有意义)

        查询语句的select group by ,having 子句是聚组函数唯一出现的地方,

        where 子句中不能使用聚组函数。

     

       3.group by having

        select deptno,sumsal from emp where sal>1200 group by deptno having sumsal>8500 order by deptno;

        当在gropu by 子句中使用having 子句时,查询结果中只返回满足having条件的组。

        在一个sql语句中可以有where子句和having子句。having where 子句类似,均用于设置限定条件

        where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含

        聚组函数,使用where条件显示特定的行。

        having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定

        的组,也可以使用多个分组标准进行分组。

        查询每个部门的每种职位的雇员数

        select deptno,job,count* from emp group by deptno,job

        /****************************************************************

     

        4.特别注意

        在使用group by 时,有一个规则需要遵守,即出现在select列表中的字段,如果没有在组函数中,那么必须出现在group by 子句中。

        select中的字段不可以单独出现,必须出现在group语句中或者在组函数中。)

  • 相关阅读:
    arm linux kernel 从入口到start_kernel 的代码分析
    Booting ARM Linux
    GNU风格 ARM汇编语法指南
    基于linux2.6.38.8内核启动过程完全解析[一]
    基于linux2.6.38.8内核zImage文件的自解压详解
    Busybox支持中文的解决办法
    对Kernel panic-not syncing:No init found...init=option to kernel错误总结!
    Linux 的启动流程
    计算机是如何启动的?
    Debian的定时执行命令Crontab
  • 原文地址:https://www.cnblogs.com/wuseyukui/p/3402688.html
Copyright © 2011-2022 走看看