sql 语句系列(加减乘除与平均)[八百章之第十四章]
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 语句系列(加减乘除与平均)[八百章之第十四章]的更多相关文章
- sql 语句系列(多表之链)[八百章之第三章]
新增连接查询而不影响其他连接查询 请看图: 这种情况我们一般会使用左连接的方式. select e.ENAME,d.LOC,eb.RECEIVED from emp e join dept d on( ...
- sql 语句系列(null 值处理)[八百章之第二章]
查找只存在一个表中的数据 有两张表: EMP: select * from emp DEPT: 他们有共同的属性:deptno 现在要查询EMP 中的deptno不等于DEPTNO的deptno项. ...
- C#语言和SQL Server第十三 十四章笔记
十三章 使用ADO.NET访问数据库 十四章使用ADO.NET查询和操作数据库 十三章: ...
- “全栈2019”Java第八十四章:接口中嵌套接口详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- sql 语句系列(字符串的遍历嵌入删除与统计)[八百章之第十一章]
遍历字符串 我觉得首先要提出一个疑问: 一个数据库本身就是用于存储的,遍历字符串究竟有何意义? 先看如何实现的,毕竟sql service 是没有for循环,也没有loop和while的. selec ...
- WP8.1学习系列(第二十四章)——Json解析
.net已经集成了json解析,类名叫DataContractJsonSerializer DataContractJsonSerializer 类型公开以下成员. 构造函数 名称 说明 Da ...
- Mysql常用sql语句(八)- where 条件查询
测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...
- SQL语句之数据库操作
SQL语句系列 1.SQL语句之行操作 2.SQL语句之表操作 3.SQL语句之数据库操作 4.SQL语句之用户管理 占坑,带写……
- SQL语句之用户管理
SQL语句系列 1.SQL语句之行操作 2.SQL语句之表操作 3.SQL语句之数据库操作 4.SQL语句之用户管理 占坑,待写……
- SQL语句之表操作
SQL语句系列 1.SQL语句之行操作 2.SQL语句之表操作 3.SQL语句之数据库操作 4.SQL语句之用户管理 写在前面 在上一篇博文里面我整理了“行”级别的操作,分别是“增(insert).删 ...
随机推荐
- ElasticSearch基本查询使用(2)
在介绍本章之前,需要先打开安装的Kibana页面, 并打开命令行工具页面: 并且根据上节的介绍,我们需要根据中文搜索,所以需要在建立映射时,指定中文字段的分词器为Ik分词器, 默认为英文分词器,每个中 ...
- SQL之 逻辑库,数据表
SQL语言三大类 创建逻辑库 创建数据表 例子 数据表其他操作 ps:desc仅仅查看表的结构,不能查看内容 添加字段 ps: 修改字段类型和约束 修改字段名称 删除字段
- springMVC+JDBC:分页示例
文章来源:http://liuzidong.iteye.com/blog/1067492 一 环境:XP3+Oracle10g+MyEclipse6+(Tomcat)+JDK1.5 二 工程相关图片: ...
- 使用Wireshark在RTP流中提取中264数据(针对udp)(转)
调试rtsp收发流时,经常会需要抓包以确认是网络问题还是程序问题还是其它问题.通过tcpdump或者wireshark抓到的包通常是rtp流,保存为.pcap格式文件后中,可通过wireshark进行 ...
- FFmpeg介绍与编译
目录 FFmpeg FFmpeg核心模块 FFmpeg编译 FFmpeg FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制 ...
- ElasticSearch - 基础概念和映射
前言 写这篇东西,是因为官方文档看着太痛苦,于是乎想用大白话来聊聊 ElasticSearc (下面都简称ES).所以下文对于 ES 一些概念的表述可能会与官方有出入,所以需要准确的表述和详细定义的, ...
- 浅析三维模型3DTile格式轻量化处理常见问题与处理措施
浅析三维模型3DTile格式轻量化处理常见问题与处理措施 三维模型3DTile格式的轻量化处理是大规模三维地理空间数据可视化的关键环节,但在实际操作过程中,往往会遇到一些问题.下面我们来看一下这些常见 ...
- QGIS中下载遥感影像的Python代码片段
1. 引言 QGIS是开源免费且好用的GIS软件,并且可以使用Python脚本来控制 这里主要使用的打开QGIS时启动内置的Python解释器,这个Python解释器可以访问iface接口从而实现对Q ...
- 记录--两行CSS让页面提升了近7倍渲染性能!
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 对于前端人员来讲,最令人头疼的应该就是页面性能了,当用户在访问一个页面时,总是希望它能够快速呈现在眼前并且是可交互状态.如果页面加载 ...
- [javascript]细节与使用经验
[版权声明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/18031957 出自[进步*于辰的博客] 纯文字阐述,内 ...