Oracle 数据库-分组函数总结

Oracle 分组函数

分组函数作用于一组数据,并对一组函数返回一个值。

组函数类型
avg,count,max,min,sum
可以对数值型数据使用avg和sum函数。

select avg(salary),min(salary),max(salary),sum(salary) from employees where job_id like '%REP%';

avg(平均值)和sum(合计)函数:
可以对任意数据类型的数据使用 min和 max函数(包括日期)。

select min(hire_date),max(hire_date) from employees

count(*)返回表中记录总数,适用于任意数据类型。

select count(*) from employees where department_id = 50;

count (expr) 返回expr不为空的记录总数。

select count (commission_pct) from employees where department_id = 50;

组函数忽略空值

select avg(commission_pct) from employees;
·
NVL函数使分组函数无法忽略空值

select avg(nvl(commission_pct,0)) from employees;

count (distinct expr)返回expr非空且不重复的记录总数

select count(distinct department_id) from employees;

可以使用group by子句将表中的数据分成若干组,在select列表中所有未包含在组函数中的列都应该包含在 group by子句中。

select department_id,avg(salary) from employees group by department_id;

包含在 group by 子句中的列不必包含在select列表中:

select avg(salary) from employees group by department_id;

在group by 子句中包含多个列:

select department_id,job_id,sum(salary) from employees group by department_id,job_id;

非法使用组函数:所有包含于select列表中,而未包含于组函数中的列都
必须包含于 GROUP BY 子句中。
如下:
select department_id,count(last_name) from employees;

非法使用组函数
• 不能在where子句中使用组函数。
• 可以在having子句中使用组函数。

如下:
select department_id,avg(saslary) from employees where avg(salary)>8000 group by department_id;
过滤分组:having 子句

  1. 行已经被分组。
  2. 使用了组函数。
  3. 满足having子句中条件的分组将被显示。

select department_id,max(salary) from employees group by department_id having max(salary)>10000;

嵌套组函数

select max(avg(salary)) from employees group by department_id;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在notepad++中配置java编译环境

在notepad中配置java编译环境 (1)首先,下载安装了Notepad,在菜单栏那里找到Plugin Manager,有一些版本是没有中文的,所有只有Plugin Manager,如果连Plugin Manager都没有,你则需要去…

Java 基础数据类型

Java 基础数据类型 Java的两大数据类型:基本数据类型、引用类型。 Java语言提供了八种基本数据类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。 整形:byte&#xf…

Java获取系统时间

Java获取系统时间 Java获取系统时间 在java 中,有很多种方法都可以获取到系统的当前时间,但也需要到对应的类,不同的类自然有不同的方法。这里为大家介绍获取系统当前时间的四种方式。 1. 通过Calendar类来获取当前时间 需要引用…

Java单例模式的几种实现方式

Java单例模式的几种实现方式 在Java 中,单例类只能有一个实例,必须创建自己的唯一实例,单例类必须给所有其他对象提供这一实例。Java 单例模式有很多种实现方式,在这里给大家介绍单例模式其中的几种。分别是饿汉式,懒…

Java 中抽象类与接口

Java 抽象类: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这个类就是抽象类。 抽象类不能创建…

Java 中的进程与线程的实现

了解进程与线程: 进程: 当一个程序进入内存运行时,即变成一个进程。进程是处于运行过程 中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单 位一般而言,进程包含如下三个特征&…

Java集合工具类:Collections

Java提供了一个操作Set、List和Map等集合的工具类:Collections,该工具类里 提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象实现同步控制等方法。 一、 排序操作 如下示例: public class CollectionsSor…

Java异常处理throws/throw

Java的异常被分为两大类:Checked异常和Runtime异常(运行时异常)。 • Runtime异常:所有的RuntimeException类及其子类的实例; • Checked异常:不是RuntimeException类及其子类的异常实例。 只有Java语言提供…

JDBC 连接MYSQL数据库

1. 加载驱动 Class.forName("com.mysql.jdbc.Driver");com.mysql.jdbc 包名 Driver 驱动名,驱动包需要引入进来 mysql com.mysql.jdbc.Driveroracle oracle.jdbc.driver.OracleDriversqlserver com.microsoft.sqlserver.jdbc.SQLServerDriver …

JSP 之输出九九乘法表

JSP是一种建立在Servlet规范提供的功能之上的动态网页技术,允许在网页文件中嵌入java代码和jsp标记。Java 服务器页面 (Java Server Page ,JSP) 扩展名为 .jsp。 1.jsp的执行过程 Jsp文件在用户第一次请求时,会被编译成Servlet,然后由这个Se…

Java 重写与重载

方法的重写: 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。 重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。 重写方法不能抛出新的检查异常或者比被重写方法申…

Java新增

在实践项目中我们有可能需要做到新增功能,新增一张表,或是新增多张表。这里我新增的是一张表。 这里主要描述DAO层与Servlet 层: DAO 层: public class UserDaoImpl implements UserDao {private Connection con null;private P…

JSP根据状态动态改变数据表格按钮

有时候在开发的过程中会遇到需要根据状态ID 来动态改变数据表格的按钮&#xff0c;下面我主要讲述两种表格根据ID改变按钮的方式。 下面这种我是用EL 表达式获取表格中的值&#xff1a; <table class"table table-striped table-bordered table-hover" id"s…

Java 模糊查询

在学习Java 这门语言过程中&#xff0c;会遇到无数的知识点与错误&#xff0c;最重要的是我们能够在茫茫的代码中找到突破口&#xff0c;并用心去汲取精华。 在很多时候我们会用到模糊查询&#xff0c;这里是我在编码过程中用到的模糊查询。 JSP &#xff1a; <input value…

Java删除表

Java删除表 这里页面我用了layui 框架做删除的&#xff0c;这里需要引入layui 的css 与js 插件&#xff0c;这里写出主要的代码。 Jsp &#xff1a; //监听行工具事件table.on(tool(test), function(obj){var data obj.data; //获得当前行数据var date1 data.classifyColum…

原始分页

Jsp &#xff1a; <div style"float: right;">当前为${currentPage}页&#xff0c;共有${totalRow}条数据&#xff0c;共${totalPage}页 <select style"border-radius: 18px;" id"pageSize" name"pageSize" onchange"c…

根据银行卡号判断银行卡是否正确与归属银行

校验过程&#xff1a; 1.从卡号的最后一位数字开始&#xff0c;逆向将奇数位&#xff08;1&#xff0c;3&#xff0c;5 等等相加&#xff09; 2.从卡号最后一位数字开始&#xff0c;逆向将偶数位数字&#xff0c;先乘以2&#xff0c;如果乘积为两位数&#xff0c;将个位数字相加…

根据年月日判断第多少天,星期几

1. 根据年月日判断第多少天 Scanner是SDK1.5新增的一个类,可使用该类创建一个对象。 Scanner scannernew Scanner(System.in);  然后scanner对象调用下列方法&#xff08;函数&#xff09;,读取用户在命令行输入的各种数据类型   next.Byte(),nextDouble(),nextFloat,nextIn…

解决MySQLyog 导入数据库文件没有反应

之前我在MySQL 中新建了一个数据库&#xff0c;名为“onlineclassroom” 的数据库&#xff0c;但是在将外部的.sql 文件导入进来之后发现&#xff0c;数据库没有反应&#xff0c;也看不到表数据&#xff0c;以为是没有刷新问题&#xff0c;但是刷新之后发现还是没有这个就很奇怪…

解决myeclipse报错500,MySQLyog报错误码问题

在myeclipse 写了一个登录&#xff0c;但在我登录的时候却报了500的空指针&#xff0c;我检查了自己的登录代码&#xff0c;发现没有问题&#xff0c;这不应该啊&#xff0c;然后在网上也寻找了一些解决方案&#xff0c;发现好像并不适用&#xff0c;500空指针如下&#xff1a;…