一、聚合函数

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语言基本操作(聚合函数)的更多相关文章

  1. sql语句 之聚合函数

      聚合分析 在访问数据库时,经常需要对表中的某列数据进行统计分析,如求其最大值.最小值.平均值等.所有这些针对表中一列或者多列数据的分析就称为聚合分析. 在SQL中,可以使用聚合函数快速实现数据的聚 ...

  2. SQL Server 自定义聚合函数

    说明:本文依据网络转载整理而成,因为时间关系,其中原理暂时并未深入研究,只是整理备份留个记录而已. 目标:在SQL Server中自定义聚合函数,在Group BY语句中 ,不是单纯的SUM和MAX等 ...

  3. 【SQL】CLR聚合函数什么鬼

    之前写过一个合并字符串的CLR聚合函数,基本是照抄MS的示例,外加了一些处理,已经投入使用很长时间,没什么问题也就没怎么研究,近日想改造一下,遇到一些问题,遂捣鼓一番,有些心得,记录如下. 一.杂项 ...

  4. SQL中的聚合函数

    聚合函数是对一组值执行计算并返回单一的值的函数,它经常与SELECT语句的GROUP BY子句一同使用,SQL SERVER 中具体的聚合函数如下:1. AVG 返回指定组中的平均值,空值被忽略. 例 ...

  5. SQL中的聚合函数运用

    参考网址: https://zhuanlan.zhihu.com/p/245115561 聚合函数是什么 聚合函数是对一组值执行计算,并返回单个值的函数.常与 SELECT 语句的 GROUP BY ...

  6. SQL server 数据库 ——聚合函数(一列 多行,值类型)

    聚合函数 5种函数: 1.max最大值   select max(price) from car where code='c024' 2.min最小值   select * from car wher ...

  7. 数据库系统学习(六)-SQL语言基本操作

    第六讲 SQL语言概述 基本命名操作 关系代数是集合的思想 关系演算是逻辑的思想(数学公式) SQL-86,SQL-89,SQL-92,SQL-99,SQL-2003,2008...发展过程标准 SQ ...

  8. sql group by聚合函数

    如何让分组后count计算结果为0的记录也显示

  9. 2019-1-11 SQL语句汇总——聚合函数、分组、子查询及组合查询

随机推荐

  1. 【BZOJ 3443】 3443: 装备合成 (离线+线段树)

    3443: 装备合成 Time Limit: 15 Sec  Memory Limit: 128 MBSubmit: 63  Solved: 31 Description [背景]     lll69 ...

  2. 【BZOJ 4662】 4662: Snow (线段树+并查集)

    4662: Snow Time Limit: 40 Sec  Memory Limit: 256 MBSubmit: 136  Solved: 47 Description 2333年的某一天,临冬突 ...

  3. jquery.rotate.js实现旋转动画

    1.页面引入jquery.rotate.js文件, 下载地址:https://files.cnblogs.com/files/zhoujl-5071/jquery.rotate.js(打开这个网址,c ...

  4. 【UOJ #107】【APIO 2013】ROBOTS

    http://uoj.ac/problem/107 设\(f(l,r,i,j)\)表示\([l,r]\)中的机器人聚集到\((i,j)\)需要花的最小操作数. \(f(l,r,i,j)=\min\le ...

  5. QTREEⅠ SPOJ

    树剖模板,注意把边化为点后要查到y的儿子. #include<bits/stdc++.h> using namespace std; ; int f[N],bel[N],w[N],id[N ...

  6. UVA11019 Martix Matcher --- AC自动机

    UVA11019 Martix Matcher 题目描述: 给定一个\(n*m\)的文本串 问一个\(x*y\)的模式串出现的次数 AC自动机的奇妙使用 将\(x*y\)的模式串拆分成x个串,当x个串 ...

  7. ACM -- 算法小结(十)素数的两种打表法

    素数的两种打表法 下面介绍两种素数打表法,由于是两年前留下的笔记,所以没有原创链接~~ @_@!! 第一种疯狂打表法: #include<stdio.h> #include<math ...

  8. C++ -- STL泛型编程(二)之set

    set集合容器实现了红黑树的平衡二叉检索树的数据结构,在插入元素时候它会自动调整二叉树的排列,把元素放在适当的位置,以确保每个子树根节点的键值都大于左子树的所有节点的键值,而小于右子树的所有节点的键值 ...

  9. 2038: [2009国家集训队]小Z的袜子(hose) (莫队算法)

    题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=2038 专题练习: http://acm.hust.edu.cn/vjudge/conte ...

  10. DiscuzX2.5 程序底层架构

    程序底层架构 • 要求PHP版本大于5.1,抛弃了对PHP4的支持 • 大量使用了面向对象编程(OOP) • 实现了程序运程过程中按需加载,按需加载主要是针对类文件 • 对目录名.文件名和类名的要求 ...