分组查询使用 group by 来设置分组把该列具有相同值的多条记录当成一组记录来处理然后只会输出一条记录得到的结果会默认使用升序的方式进行排列

规则:

1如果使用了分组函数,或者是 group by 语句当他出现在 select 列表中的字段,要么出现在组合函数中,要么出现在 group by 子句中,否则会报错

2group by 子句的字段可以不用出现在 select 列表中。

3使用组函数可以不使用 group by 子句,此时所有的查询结果作为一组。

 

-- 首先,查看emp 中的所有数据。

select * from scott.emp;

-- 在员工表中,按照部门来分组

select deptno from scott.emp group by deptno;

-- 在员工表中,查询每个部门的编号,员工数,总工资,平均奖金

select deptno, count(*), sum(sal), avg(sal)

from scott.emp group by deptno;

 

-- 在分组的时候,有时候需要进行进一步的过滤,可以使用 having 子句

-- having 是指“拥有xxx”的意思,也就是跟着一个条件,可以进行过滤筛选。

select deptno, count(*), sum(sal), avg(sal)

from scott.emp

group by deptno;

select deptno, count(*), sum(sal), avg(sal)

from scott.emp

group by deptno

having sum(sal) > 9000;

-- having 和 where 区别:

-- 1. 都是作为条件过滤。

-- 2. where 是在分组之前使用的,having 是在分组之后使用的,参照物是 group by

-- 3. where 子句中不能使用组函数(聚合函数,但 having 可以

升序排序:order by ...ASC(放在最后,对结果集进行排序)

降序排序:order by ...DESC(放在最后,对结果集进行排序)

-- 关键字的使用顺序

select、from、where、group by、having、order by

Oracle数据库之分组查询及排序的更多相关文章

  1. Oracle数据库之五 限定查询和排序显示

    五.限定查询和排序显示 5.1.限定查询 5.1.1 认识限定查询 例如:如果一张表中有 100w 条数据,一旦执行了 " SELECT * FROM 表 " 语句之后,则将在屏幕 ...

  2. oracle数据库之分组查询

    本章内容和大家分享的是数据当中的分组查询.分组查询复杂一点的是建立在多张表的查询的基础之上,(我们在上一节课的学习中已经给大家分享了多表查询的使用技巧,大家可以自行访问:多表查询1  多表查询2)而在 ...

  3. oracle数据库之分组查询(转)

    本章内容和大家分享的是数据当中的分组查询.分组查询复杂一点的是建立在多张表的查询的基础之上,(我们在上一节课的学习中已经给大家分享了多表查询的使用技巧,大家可以自行访问:多表查询1  多表查询2)而在 ...

  4. Oracle数据库之——分组查询,子查询及添加,更新,删除

    分组查询 写的顺序: select...from...where... group by...having...order by... 执行顺序: from...where...group by... ...

  5. Oracle和MySQL分组查询GROUP BY

    Oracle和MySQL分组查询GROUP BY 真题1.Oracle和MySQL中的分组(GROUP BY)有什么区别? 答案:Oracle对于GROUP BY是严格的,所有要SELECT出来的字段 ...

  6. MySQL的ALTER变更、正则查询、分组查询、排序查询以及事务查询的概

    MySQL的表和字段信息的变更 ALTER TABLE table-name DROP column-name; #删除某个字段 ALTER TABLE table-name ADD column-n ...

  7. ASP.NET操作ORACLE数据库之模糊查询

    ASP.NET操作ORACLE数据库之模糊查询 一.ASP.NET MVC利用OracleHelper辅助类操作ORACLE数据库 //连接Oracle数据库的连接字符串 string connect ...

  8. oracle数据库元数据SQL查询

    oracle数据库经典SQL查询 .查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from ...

  9. Oracle数据库的状态查询

    本文来源:huang_xw 的<Oracle数据库的状态查询> 1 状态查询 启动状态 SQL语句 结果 nomount select status from v$instance; ST ...

随机推荐

  1. ubuntu 14.4 apache2 django

    记录下自己的配置过程以及遇见的问题. 系统: Ubuntu 14.04 64 系统内置Python版本:2.7.6 先声明,我一下操作都以root身份. 若登录是非root身份,请在命令前加sudo. ...

  2. mysqldump.md

    mysqldump命令 选项 -A, --all-databases:导出全部数据库 -Y, --all-tablespaces:导出全部表空间. -y, --no-tablespaces:不导出任何 ...

  3. 数据库学习之中的一个: 在 Oracle sql developer上执行SQL必知必会脚本

    1 首先在開始菜单中打开sql developer: 2. 创建数据库连接 点击左上角的加号 在弹出的对话框中填写username和password 測试假设成功则点击连接,记得角色要写SYSDBA ...

  4. 1483. [HNOI2009]梦幻布丁【平衡树-splay】

    Description N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色. 例如颜色分别为1,2,2,1的四个布丁一共有3段颜色. Input ...

  5. Jenkins构建Python项目失败

     Console Output 提示:'Python' 不是内部或外部命令,也不是可运行的程序 定位原因:python.exe 不在jenkins执行用户的PATH里面 解决:构建的时候Python命 ...

  6. 用C#给程序加启动画面并只允许一个应用程序实例运行

    . 启动画面类: public class SplashForm : System.Windows.Forms.Form { private System.Windows.Forms.PictureB ...

  7. sql三表查询

    情景: student  id    stname    sex score   scoreid  stname  birth course id    coursename  age 简单说明  a ...

  8. webStorm常用设置之过滤文件夹

    webStorm是一款很好用的前端IDE,但是不能否认的是webStorm很重,没有sublime轻便 尤其是项目cnpm后,加载node_modules时的状态,简直想那块豆腐自杀有莫有,就算你耐心 ...

  9. CentOS中配置VNC Server

    环境:CentOS 6.4 1.安装tigervnc-server及相关软件 首先检查系统中是否安装tigervnc-server安装包 rpm -qa tigervnc-server 如果没有就直接 ...

  10. mysql/mariadb学习记录——创建删除数据库、表的基本命令

    查看已有的数据库: mysql> show databases; +--------------------+ | Database | +--------------------+ | inf ...