概念:

所谓组查询即将数据按照某列或者某些列相同的值进行分组,然后对该组的数据进行组函数运用,针对每一组返回一个结果。

note:

1.组函数可以出现的位置: select子句和having 子句

2.使用group by 将将行划分成若干小组。

3.having子句用来限制组结果的返回。

语法:

select ...

from ...

where ...

group by col_name,col_name

having ...

order by...

group by col_name:即将数据按照col_name相同值进行分组

组函数常见有5个:

avg:求平均值

count:求总数

max:最大值

min:最小值

sum:求和

avg([distinct] column )/sum([distinct] column) :可以作用在存储数字数据的列上。

max(),min():可以作用在任意类型的数据之上。

对字符型数据的最大值,是按照首字母由A~Z的顺序排列,越往后,其值越大。当然,对于汉字则是按照其全拼拼音排列的,若首字符相同,则比较下一个字符,以此类推。

count([distinct] column | *) :

count(*) : 统计表中所有的行数

count(column) : 返回所有非空行的行数

练习:

查看各个部门的最高工资

查看各个部门的员工数

查看各个部门的平均工资

查看各个部门的最低工资

group by 子句:

1.用来将表中的行划分成若干更小的组

2.出现在select子句中,但是没有出现在组函数中的列必须出现在group by子句中

3.出现在group by中的列不一定出现在select子句中。

4.group by子句中的列出现在select结果中,表意性比较强。

5.当group by子句中出现多列的时候,表示按照从左至右的顺序进行分组,即先按照第一列分组,  然后再第一列分好的组里面 按照第二列进行分组,以此类推。

6.限制组结果的返回一定使用having不能使用where。

需求:

1.查看各部门,职称相同的人的平均工资。

目标查询: 平均工资

from : s_emp

条件 : 各部门 ,职称相同。

select dept_id,title, avg(salary)

from s_emp

group by dept_id,title;’

order by avg(salary);

2.查看所有部门的部门工资总和,按照部门工资的降序排序

目标 : sum(salary)

from :s_emp

条件 :各部门工资

select dept_id, sum(salary) s

from s_emp

group by dept_id

order by s desc;

3.查找部门平均工资>1000的所有部门的id和平均工资

目标: 部门id 和 avg(salary)

from:   s_emp

条件:  部门平均工资

部门平均工资>1000

select dept_id,avg(salary)

from s_emp

group by dept_id

having avg(salary)>1000

order by dept_id;

having: 限制组结果的返回。

1.如果希望限制组结果的返回,那么直接使用having子句跟在group by 子句之后。

需求:

1.查看职称不以VP开头的所有员工,

2.并且将他们以职称分组,

3.求各职称的工资总和,

4.将工资综合>5000的职称和工资总合显示出来。

目标:title sum(salary)

from: s_emp

条件:职称不以VP开头 title  not like 'VP%'

group by:各职称

限制组结果: sum(salary)>5000;

select title,sum(salary) sumS

from s_emp

where title not like 'VP%'

group by title

having sum(salary)>5000

order by sumS desc;

oracle组查询的更多相关文章

  1. 各种oracle参数查询语句

    各种oracle参数查询语句 1.show parameter:--显示各个系统参数配置 2.select * from v$parameter;--显示各个系统参数配置 2.show paramet ...

  2. oracle高级查询(实例基于scott用户四张表)

    oracle高级查询(实例基于scott用户四张表) 分组查询 多表查询 子查询 综合实例 ====================================================== ...

  3. Oracle 去重查询

      Oracle 去重查询 CreateTime--2018年2月28日15:38:45 Author:Marydon (一)使用distinct --查询指定区间内表停诊字段的值 SELECT DI ...

  4. ORACLE中查询语句的执行顺及where部分条件执行顺序测试

    Oracle中的一些查询语句及其执行顺序 原文地址:https://www.cnblogs.com/likeju/p/5039115.html 查询条件: 1)LIKE:模糊查询,需要借助两个通配符, ...

  5. oracle 常用查询语句

    一.一般日常用的脚本 1.检查源库每个节点至少3组redoselect group#,thread#,bytes/1024/1024,members,status from v$log; select ...

  6. Oracle层次查询

    Oracle层次查询的语法如下: 下面根据两道“烧脑”的题具体来体现: 1. 根据时间先后顺序,十二星座的英文名称用逗号串起来为'Aries,Taurus,Gemini,Cancer,Leo,Virg ...

  7. 【SQL】Oracle分页查询的三种方法

    [SQL]Oracle分页查询的三种方法 采用伪列 rownum 查询前10条记录 ? 1 2 3 4 5 6 7 8 9 10 11 [sql] select * from t_user t whe ...

  8. 关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其他位数)

    关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其... 方法一:使用to_char的fm格式,即: to_char(round(data.amount,2),'FM9999 ...

  9. Oracle参数化查询

    Oracle参数化查询默认是根据顺序绑定的 select * from table where name=:p1 and (select id from table2 where name=:p1); ...

随机推荐

  1. 20145334 第五次 java 实验报告

    实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 我和20145306张文锦组队编程 http://www.cnblogs.com/besti145306/ ...

  2. Web前端开发基础 第四课(颜色值)

    颜色值 在网页中的颜色设置是非常重要,有字体颜色(color).背景颜色(background-color).边框颜色(border)等,设置颜色的方法也有很多种: 1.英文命令颜色 前面几个小节中经 ...

  3. js == 判断

    根据阮一峰介绍的算法文章分12部分可判断: 如果x不是正常值(比如抛出一个错误),中断执行. 如果y不是正常值,中断执行. 如果Type(x)与Type(y)相同,执行严格相等运算x === y. 如 ...

  4. nginx编译安装

    Nginx编译安装 1.nginx官网:http://wiki.nginx.org/Install下载:http://nginx.org/en/download.html 2.编译安装# wget h ...

  5. Flink - RocksDBStateBackend

    如果要考虑易用性和效率,使用rocksDB来替代普通内存的kv是有必要的 有了rocksdb,可以range查询,可以支持columnfamily,可以各种压缩 但是rocksdb本身是一个库,是跑在 ...

  6. [转]SQLSERVER如何获取一个数据库中的所有表的名称、一个表中所有字段的名称

    1.查询数据库中的所有数据库名: SELECT Name FROM Master..SysDatabases ORDER BY Name 2.查询某个数据库中所有的表名: SELECT Name FR ...

  7. php写插件

    1.写在最前 随着互联网飞速发展,lamp架构的流行,php支持的扩展也越来越多,这样直接促进了php的发展. 但是php也有脚本语言不可避免的问题,性能比例如C等编译型语言相差甚多,所以在考虑性能问 ...

  8. ECSHOP 用户中心 我的订单前台显视订单每张商品图片及收货人

    先在网站根目录打开文件 includes/lib_transaction.php 查找代码 $sql = "SELECT order_id, order_sn, order_status, ...

  9. HttpURLConnection请求

    方法调用: //测试 public static void main(String[] args) { Map map = new HashMap(); map.put("type" ...

  10. SQL Server代理警报

    使用SQL Server代理警报的前提条件1.创建操作员,接收消息的用户2.创建警报,满足某种条件触发警报,并作出响应(执行作业或/和通知操作员)3.配置数据库邮件,用于发送消息通知4.SQL Ser ...