mysql之聚合函数、group by、having
sql中提供聚合函数可以用来统计,求和,求最值等
那么聚合函数有哪些呢?
COUNT 统计行数量
SUM 求某一列的和
AVG 求某一列的平均值
MAX 求某一列的最大值
MIN 求某一列的最小值
下面给出一些具体的用法
首先创建数据表如下:

执行列、行计数(count):
COUNT 标准格式:
SELECT COUNT(<计数规范>) FROM 表名;
其中,计数规范包括
-* : 计算所有选择的的行,包括NULL的值
- ALL列名 : 计数所有指定列的非空值,如果不写,就默认为ALL
- DISTINCT 列名 : 计数指定的列的唯一非空值
例如,计算班里有多少学生:

这样就出错了,会把null值也算进来,可以这样来计算:

也可以加入条件筛选,例如计算女生的人数

也可以计算班级数目,需要用到DISTINCT:

DISTINCT 即去重,如果不加DISTINCT返回的结果会是4
返回列合计值(SUM):
注:SUM 只有 ALL 和 DISTINST 俩种计数规范, 并没有*
计算学生的年龄之和:

返回列的平均值(AVG):
计算学生年龄的平均值

返回最大值/最小值(MAX/MIN):
求年龄最大的学生(最小年龄同理)

注:这里只能求最大值,不能查询学生的具体信息,需要用到子查询
数据分组 (GROUP BY )
SQL数据可以按照列名分组,配合聚合函数十分实用
比如我们想知道每个班里有几个学生,我们可以使用 GTOUP BY 配合 COUNT 使用:

注意:因为聚合函数通过作用于一组数据而只返回一个单个值,因此,在SELECT语句中出现的元素要么为一个聚合函数的输入值,要么为GROUP BY语句的参数,否则会出错。
HAVING 过滤条件
mysql之聚合函数、group by、having的更多相关文章
- mysql 从聚合函数group by到sql_mode
说到group by, 想必大家都不陌生, 就是对查询的数据进行分组,我们可以通过该操作实现一些特殊需求,比如去重. 最近在项目中使用HQL:" from TSjrz where CBh = ...
- linux上,mysql使用聚合函数group by 时报错:SELECT list is not in GROUP BY clause and contains nonaggre的问题
之前在windows上测试是可以正常使用的,但是上传到Linux上后,就报错: Expression # of SELECT list is not in GROUP BY clause and co ...
- MySQL数据库聚合函数
+++++++++++++++++++++++++++++++++++++++++++标题:MySQL数据库聚合函数时间:2019年2月25日内容:MySQL数据库聚合函数重点:MySQL数据库聚合函 ...
- MySQL的聚合函数
MySQL的聚合函数 网站:https://www.runoob.com/mysql/mysql-functions.html 函数名 功能描述 count() 计数 sum() 求和 avg() 平 ...
- mysql sum聚合函数和if()函授的联合使用
今天去面试遇到一个数据库试题,首先说一下表结构如下: 表结构:mytest 表数据:mytest 要查询的结果如下: 在本题目中,需要用到sum聚合函数和if函数 sql如下: ,)) ,)) AS ...
- MySQL常用聚合函数
官方文档:Aggregate (GROUP BY) Functions Name Description AVG() Return the average value of the argument ...
- mysql常见聚合函数
count():总数量avg():平均数std():标准差sum():求和max():最大值min():最小值 上面的不过多介绍group_concat():分组列值全部展示到一行eg:mysql&g ...
- Oracle的聚合函数group by结合CUBE和ROLLUP的使用
转自:https://docs.oracle.com/cd/E11882_01/server.112/e25554/aggreg.htm#DWHSG8618 CUBE Syntax CUBE appe ...
- MySQL使用聚合函数查询
create table `t_grade` ( `id` int , `stuName` varchar (60), `course` varchar (60), `score` int ); in ...
随机推荐
- Spring3.1 对Bean Validation规范的新支持(方法级别验证)
上接Spring提供的BeanPostProcessor的扩展点-1继续学习. 一.Bean Validation框架简介 写道Bean Validation standardizes constra ...
- MongoDB之DBref(关联插入,查询,删除) 实例深入
http://blog.csdn.net/crazyjixiang/article/details/6668288 suppose I have the following datastructure ...
- 开机出现loading (hd0)/ntldr。。。
电脑一开机就出现ntldr is missing的原因:1.操作系统文件损坏.2.MBR表损坏.3.硬盘数据线松了.4.硬盘坏了.解决方法:1.重新安装操作系统.2.用U盘或光盘引导,进入PE系统,用 ...
- Windows 使用 Visual Studio 编译 caffe
说明:最近看 caffe 发现在 github 上下载的源码没有windows版本的,需要自己生成项目文件才能用 Visual Studio 编译,这里记录一下生成Windows项目文件的方法以及编译 ...
- 第一篇:tz师兄【附面试题总结】
本篇文章包含三部分: 师兄故事 面试经历 面试资源分享 师兄故事 tz师兄是一位及其低调的小伙,也是在班级中我比较欣赏的少年. 2017年大学毕业,原资源勘察工程专业. 大学期间自学java,之后进入 ...
- [UOJ#207. 共价大爷游长沙]——LCT&随机化
题目大意: 传送门 给一颗动态树,给出一些路径并动态修改,每次询问一条边是否被所有路径覆盖. 题解: 先%一发myy. 开始感觉不是很可做的样子,发现子树信息无论维护什么都不太对…… 然后打开题目标签 ...
- BZOJ_2038_[2009国家集训队]小Z的袜子(hose)_莫队
BZOJ_2038_[2009国家集训队]小Z的袜子(hose)_莫队 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无 ...
- Django之META与前后端交互
Django之META与前后端交互 1 提交表单之GET 前端提交数据与发送 1)提交表单数据 2)提交JSON数据 后端的数据接收与响应 1)接收GET请求数据 2)接收POST请求数据 3)响应请 ...
- Form表单 JSON Content-type解析
Form表单 JSON Content-type解析 1 表单Form概述 在Form表单中,参数一般有: action 表单提交的url method 提交方式:post get name 表单的属 ...
- 【爆料】-《维多利亚大学毕业证书》Victoria一模一样原件
☞维多利亚大学毕业证书[微/Q:865121257◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归& ...