SQL语言基本操作(聚合函数)
一、聚合函数
1、标量函数:只能对单个的数字或值进行计算。主要包括字符函数、日期/时间函数、数值函数和转换函数这四类。如LEFT/RIGHT/SUBSTRING/LTRIM/RTRIM/CONCAT/UPPER/LOWER/NOW/CURRENT_DATE/DATE_FORMAT/RAND/IFNULL等函数。
2、聚合函数意味着用于分组数据。常用的有SUM、COUNT、AVG、MIN和MAX等函数。下面将对其进行适当说明:
2.1、COUNT函数
首先,COUNT函数可以用来返回所有选中行的数目,而不管任何特定的列;其次,COUNT可以指定一个具体的列而不是星号;最后,允许我们除了使用列名还可以使用关键字DISTINCT。
注意:COUNT函数只计算存在的情况,对值为NULL的情况不计算在内。
相关执行SQL语句和执行代码:
2.2、分组数据
使用关键字GROUP BY 把SELECT 语句返回的数据分成任意数目的组,一旦进行分组,使用聚合函数对其进行汇总统计。具体示例如下:
注意:若某行的Grade值为NULL时,计算平均值时会忽略带有NULL值得那一行。如果想要把NULL当做0,那么可以使用ISNULL函数把NULL转换成0,如下所示:
AVG(ISNULL(Grade,0)) AS ’Average Grade‘;即可。
2.3、基于聚合查询条件
汇总数据,一旦创建了组,查询条件就会变得更加复杂。针对带GROUP BY 的一条SELECT 语句应用于任何查询条件,必须要询问查询条件是应用于单独的行还是 整个组。实际上,WHERE子句是对单独行执行查询条件。HAVING 的关键字,允许对组级别使用查询条件。
注意:所有的列必须要么出现在GROUP BY中,要么包含在一个聚合函数中。
一般格式如下:SELECT columnlist
FROM tablelist
WHERE condition
GROUP BY columnlist
HAVING condition
ORDER BY columnlist;
强调一点:当在SELECT语句中使用上面任意一个关键字时,都需要按照这里给定的顺序输入。如关键字HAVING总要放在GROUP BY之后,ORDER BY之前。
二、小结
聚合函数与GROUP BY组合使用时是体现真正强大之处,他允许针对划分成组的数据进行真正的聚合。而HAVING关键字的使用,允许我们对聚合函数的值应用组级别的查询条件。
SQL语言基本操作(聚合函数)的更多相关文章
- sql语句 之聚合函数
聚合分析 在访问数据库时,经常需要对表中的某列数据进行统计分析,如求其最大值.最小值.平均值等.所有这些针对表中一列或者多列数据的分析就称为聚合分析. 在SQL中,可以使用聚合函数快速实现数据的聚 ...
- SQL Server 自定义聚合函数
说明:本文依据网络转载整理而成,因为时间关系,其中原理暂时并未深入研究,只是整理备份留个记录而已. 目标:在SQL Server中自定义聚合函数,在Group BY语句中 ,不是单纯的SUM和MAX等 ...
- 【SQL】CLR聚合函数什么鬼
之前写过一个合并字符串的CLR聚合函数,基本是照抄MS的示例,外加了一些处理,已经投入使用很长时间,没什么问题也就没怎么研究,近日想改造一下,遇到一些问题,遂捣鼓一番,有些心得,记录如下. 一.杂项 ...
- SQL中的聚合函数
聚合函数是对一组值执行计算并返回单一的值的函数,它经常与SELECT语句的GROUP BY子句一同使用,SQL SERVER 中具体的聚合函数如下:1. AVG 返回指定组中的平均值,空值被忽略. 例 ...
- SQL中的聚合函数运用
参考网址: https://zhuanlan.zhihu.com/p/245115561 聚合函数是什么 聚合函数是对一组值执行计算,并返回单个值的函数.常与 SELECT 语句的 GROUP BY ...
- SQL server 数据库 ——聚合函数(一列 多行,值类型)
聚合函数 5种函数: 1.max最大值 select max(price) from car where code='c024' 2.min最小值 select * from car wher ...
- 数据库系统学习(六)-SQL语言基本操作
第六讲 SQL语言概述 基本命名操作 关系代数是集合的思想 关系演算是逻辑的思想(数学公式) SQL-86,SQL-89,SQL-92,SQL-99,SQL-2003,2008...发展过程标准 SQ ...
- sql group by聚合函数
如何让分组后count计算结果为0的记录也显示
- 2019-1-11 SQL语句汇总——聚合函数、分组、子查询及组合查询
随机推荐
- 2018ECfinal J. Philosophical Balance
2018ECfinal J. Philosophical Balance 题目大意: 给出一个字符串 \(s\) ,你需要给每一个 \(i\) 一个 \([0,1]\) 之间的权值 \(k_i\) , ...
- [BZOJ3598][SCOI2014]方伯伯的商场之旅(数位DP,记忆化搜索)
3598: [Scoi2014]方伯伯的商场之旅 Time Limit: 30 Sec Memory Limit: 64 MBSubmit: 449 Solved: 254[Submit][Sta ...
- (VIJOS) VOJ 1067 Warcraft III 守望者的烦恼 矩阵快速幂
https://vijos.org/p/1067 就..挺普通的一道题..自己学一下怎么推式子就可以...细节不多但是我还是日常爆细节..比如说循环写成从负数开始... 只求ac不求美观的丑陋 ...
- 2017-2018-1 JAVA实验站 冲刺 day01
2017-2018-1 JAVA实验站 冲刺 day01 各个成员在 Alpha 阶段认领的任务 小组成员 分工 任务量 张韵琪 写博客.后期市场推广,营销.打杂.各职能的配合 齐力锋 提供宣传用图. ...
- Spring整合Mybatis案例,献给初学的朋友
今天我们来学习Spring整合Mybatis. 开发环境:Ide:MyEclipse 2017 CI JDK:1.8 首先我们简单的认识下这两个框架 1.Mybatis MyBatis是一个支持普通S ...
- 无法读取Excel中的数据单元格。有数据,但是读出来全是空值
C#读取Excel,取值为空的解决办法! C#读取Excel遇到无法读取的解决方法是什么呢?这样在C#读取Excel的过程中有很多问题,那么本文就向你介绍如何解决C#读取Excel遇到无法读取的解决方 ...
- Use an LM317 as 0 to 3V adjustable regulator
Most engineers know that they can use an inexpensive, three-terminal adjustable regulator, such as F ...
- Raspberry pi,一个好玩的派:第八季 Raspbmc(下)
上一季安装好Raspbmc就等着这一季好好玩耍呢. 我们要在这一季中完毕例如以下任务:调整分辨率.连接wifi并在无线路由器中设置固定IP.手机遥控Raspbmc.改变语言为中文.远程訪问Raspbe ...
- sqlserver获取所有表和表字段
SELECT [number]=a.colorder, [column] =a.name, [datatype]=b.name, [length]=COLUMNPROPERTY(a.id,a.name ...
- 虚拟机安装Linux过程和踩坑
由于想学习node,服务器端大都使用Linux系统,所以就想着在笔记本上弄个虚拟机,装上Linux,使用xshell在window上操作也方便,也借此来熟悉一下Linux,接下来就解释下安装的步骤和遇 ...