avg的注意事项

一张t2表:

select * from t2

select AVG(sal) from t2

得到的结果是:

本来我们得到的结果应该是10的。但是得到的结果确实15.

这是因为忽略了null值。

解决方案:

当为空的时候转换为0

select AVG(coalesce(sal,0)) from t2

max 与 min的注意事项

max与min会忽略null,但是如果全是null的情况,会返回null值。

select DEPTNO,max(COMM)
from EMP
where DEPTNO in (10,30)
group by DEPTNO

例如:

解决方法:

如上文

select DEPTNO,max(coalesce(COMM,0))
from EMP
where DEPTNO in (10,30)
group by DEPTNO

sum

sum 计算的时候会忽略null值。

如上:

解决:

select DEPTNO,sum(coalesce(COMM,0))
from EMP
where DEPTNO in (10,30)
group by DEPTNO

计算行数

通常我们计算行数,通常是使用count。

同样是会忽略null值:

select COUNT(*),count(COMM)
from EMP

累计和

要实现下面这种效果:



比如2600,是红框部分的和。

假设前两列的效果是:

select e.EMPNO, e.SAL
from EMP e
order by 1

要求写出第三列的效果。

答案:

select e.EMPNO, e.SAL,(select SUM(d.SAL) from EMP d where d.EMPNO<=e.EMPNO) as total
from EMP e
order by 3

累计乘

如何实现累计乘法?

有一个数学概念:

select e.EMPNO, e.SAL,(select  exp(sum(log(d.SAL))) from EMP d where d.EMPNO<=e.EMPNO and d.DEPTNO=e.DEPTNO ) as total
from EMP e
where DEPTNO=10
order by 3

累计差

分情况讨论,当是第一个直接输出第一个。后面的就是全部是负值相加然后加两个EMPNO最小值。

select e.EMPNO, e.SAL,(select  case when e.EMPNO=MIN(d.EMPNO) then sum(d.SAL)
else sum(-d.SAL)+(select f.SAL from emp f where f.EMPNO=MIN(d.EMPNO))*2
end from EMP d where d.EMPNO<=e.EMPNO and d.DEPTNO=e.DEPTNO ) as total
from EMP e
where DEPTNO=10
order by EMPNO

sql 语句系列(加减乘除与平均)[八百章之第十四章]的更多相关文章

  1. sql 语句系列(多表之链)[八百章之第三章]

    新增连接查询而不影响其他连接查询 请看图: 这种情况我们一般会使用左连接的方式. select e.ENAME,d.LOC,eb.RECEIVED from emp e join dept d on( ...

  2. sql 语句系列(null 值处理)[八百章之第二章]

    查找只存在一个表中的数据 有两张表: EMP: select * from emp DEPT: 他们有共同的属性:deptno 现在要查询EMP 中的deptno不等于DEPTNO的deptno项. ...

  3. C#语言和SQL Server第十三 十四章笔记

    十三章  使用ADO.NET访问数据库 十四章使用ADO.NET查询和操作数据库 十三章:                                                       ...

  4. “全栈2019”Java第八十四章:接口中嵌套接口详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  5. sql 语句系列(字符串的遍历嵌入删除与统计)[八百章之第十一章]

    遍历字符串 我觉得首先要提出一个疑问: 一个数据库本身就是用于存储的,遍历字符串究竟有何意义? 先看如何实现的,毕竟sql service 是没有for循环,也没有loop和while的. selec ...

  6. WP8.1学习系列(第二十四章)——Json解析

    .net已经集成了json解析,类名叫DataContractJsonSerializer DataContractJsonSerializer 类型公开以下成员. 构造函数     名称 说明 Da ...

  7. Mysql常用sql语句(八)- where 条件查询

    测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...

  8. SQL语句之数据库操作

    SQL语句系列 1.SQL语句之行操作 2.SQL语句之表操作 3.SQL语句之数据库操作 4.SQL语句之用户管理 占坑,带写……

  9. SQL语句之用户管理

    SQL语句系列 1.SQL语句之行操作 2.SQL语句之表操作 3.SQL语句之数据库操作 4.SQL语句之用户管理 占坑,待写……

  10. SQL语句之表操作

    SQL语句系列 1.SQL语句之行操作 2.SQL语句之表操作 3.SQL语句之数据库操作 4.SQL语句之用户管理 写在前面 在上一篇博文里面我整理了“行”级别的操作,分别是“增(insert).删 ...

随机推荐

  1. 【aspose-words】Aspose.Words for Java模板语法详细剖析

    前言 缘由 aspose-words模板语法再了解 垂死病中惊坐起,小丑竟是我自己.对于aspose-words的使用本狗自以为已炉火纯青,遂在新的迭代任务中毛遂自荐,并在小姐姐面前吹了一个大牛,分分 ...

  2. 十四: Mysql数据结构选择的合理性

    Mysql数据结构选择的合理性 从MySQL的角度讲,不得不考虑一个现实问题就是磁盘I/O. 如果我们能让索引的数据结构尽量减少硬盘的I/O操作,所消耗的时间也就越小.可以说,磁盘的I/O操作次数对索 ...

  3. Java synchronized的使用与原理

    需要明确的几个问题: synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块.如果 再细的分类,synchronized可作用于instance变 ...

  4. 【规范】看看人家Git提交描述,那叫一个规矩

    前言 缘由 没想到玩了多年git,竟然还有提交描述规范 事情起因: 在工作迭代过程中,偶然发现同组小帅哥Git提交描述总是和自己的不大一样,秉承好奇至上的我特意去研究了下.竟然发现提交了这么多年的Gi ...

  5. MySQL之过滤条件

    [一]筛选过滤条件 [1]查询语句 -- 查询当前表中的指定字段的数据 select id,name from emp where id > 3; [2]创建数据表 create databas ...

  6. vue-helper 导致找到2个函数定义,跳转需要多点一下,禁用vue-helper即可

    vue-helper 导致找到2个函数定义,跳转需要多点一下,禁用vue-helper即可

  7. django(视图层)

    更详细的视图层讲解,看下面链接 https://www.cnblogs.com/xiaoyuanqujing/articles/11643459.html 一. 三板斧 ''' HttpRespons ...

  8. Flutter Utils 全网最齐全的工具类

    FlutterUtils 目录介绍 01.事件通知bus工具类 02.颜色Color工具类 03.日期转化工具类 04.File文件工具类 05.Sql数据库工具类 06.Json转化工具类 07.L ...

  9. 《百岁人生》读书笔记 | 能活百年,为什么要死在 "35" 岁?

    <百年人生>讲述了当我们如愿能够接受到 长寿 这份礼物时,它所带给我们的挑战以及应对方法,这些发生在 "眼前" 的事,不得不引发我们重新的思考.推荐阅读 一.百岁人生的 ...

  10. 鸿蒙HarmonyOS实战-ArkUI组件(RelativeContainer)

    一.RelativeContainer 1.概述 ArkUI组件中的RelativeContainer是一个相对定位的容器,可以用来将子组件按照相对位置布局. 在RelativeContainer中, ...