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 ...
随机推荐
- SQLMap入门之在Windows上安装SQLMap
前言: SQLMap是一个开放源代码的sql注入工具,SQLMap是使用Python语言开发成的,他的运行需要有Python环境的支持.写这篇文章时我使用的SQLMap版本是"sqlmap- ...
- 使用box-shadow进行画图(性能优化终结者)
最近突然想做一些好玩的东西,找来找去,想到了之前曾经在网上看到过有人用box-shadow画了一副蒙娜丽莎出来感觉这个挺有意思,正好趁着周末,自己也搞一波 前言 在线地址: 优化前的版本优化后的版本源 ...
- springmvc配置详解 教程
https://www.cnblogs.com/sunniest/p/4555801.html
- ES创建mapping时字段别名
ES默认是动态创建索引和索引类型的mapping的,但是在学习的时候还能这样用,在生产中一定是手动制定mapping!在生产中经常会遇到这样的需求,想用某个字段进行统计,又想对该字段进行模糊查询,解决 ...
- javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法
前言 for,slice(0),concact() 在js中,数组和对象的复制如果使用=号来进行复制,那只是浅拷贝.如下图演示: 如上,arr的修改,会影响arr2的值,这显然在绝大多数情况下,并不 ...
- pytesser3 使用说明
需要环境 Python3.x以上 需要安装PIL以及tesseract-ocr引擎.点我下载tesseract-ocr引擎 如何使用 1. pip install pytesser3 如图: [可 ...
- BZOJ_2962_序列操作_线段树
Description 有一个长度为n的序列,有三个操作1.I a b c表示将[a,b]这一段区间的元素集体增加c,2.R a b表示将[a,b]区间内所有元素变成相反数,3.Q a b c表示询问 ...
- BZOJ_1101_[POI2007]Zap_莫比乌斯反演
题意:FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a ,y<=b,并且gcd(x,y)=d.作为FGD的同学,FGD希望得到 ...
- BZOJ_4870_[Shoi2017]组合数问题_矩阵乘法
BZOJ_4870_[Shoi2017]组合数问题_矩阵乘法 Description Input 第一行有四个整数 n, p, k, r,所有整数含义见问题描述. 1 ≤ n ≤ 10^9, 0 ≤ ...
- SQL 中如何删除重复(每列数据都重复)的记录,只保留一行?
如果数据表没有做好约束,那么数据库中难免会遇到数据重复的情况.今天就遇到这么个看起来简单却又费神的问题---如何去重. ------期间感谢微信公众号"有关SQL"的博主大牛提供的 ...