MySQL之算术表达式、聚合函数及GROUP BY 与 HANVING 等函数的应用

一、MySQL的算术表达式

  算术表达式就是加减乘除的运算过程,主要是对一条数据中出现的数字进行统计和运算。

  首先,有一张数据表,如下:

mysql> select * from test_score;
+----+-------+--------+-------+--------+--------+
| id | class | name   | yuwen | shuxue | yingyu |
+----+-------+--------+-------+--------+--------+
|  1 |     1 | 张三    |    95 |     90 |     97 |
|  2 |     1 | 李四    |    59 |     88 |     90 |
|  3 |     1 | 王五    |    99 |     99 |     99 |
|  4 |     1 | 马六    |    51 |     56 |     59 |
|  5 |     2 | 侯七    |    92 |     94 |     93 |
|  6 |     2 | 黑八    |    92 |     97 |     89 |
|  7 |     2 | 牛二    |    59 |     60 |     61 |
|  8 |     2 | 熊大    |    55 |     50 |     54 |
|  9 |     3 | 铁牛    |    53 |     54 |     51 |
| 10 |     3 | 铜鼓    |    49 |     47 |     54 |
| 11 |     3 | 钢巴    |    47 |     51 |     50 |
+----+-------+--------+-------+--------+--------+
11 rows in set (0.00 sec)

然后统计总分,如下:

#学生张三的成绩总分
mysql> SELECT (yuwen+shuxue+yingyu) AS total FROM test_score where name='张三';
+-------+
| total |
+-------+
|   282 |
+-------+
1 row in set (0.00 sec)

二、SUM()函数的使用

  定义:SUM()函数用于计算一组值或表达式的总和。
  以前上学时老师会统计每科的平均分,然后看看谁拉了后腿。先计算语文,就是先把班里语文得分相加得到总分,然后除以学生人数,得到的就是平均分,低于平均分的学生就要倒霉了。

#所有学生语文成绩的总分
mysql> SELECT sum(yuwen) AS yuwen_total FROM test_score;
+-------------+
| yuwen_total |
+-------------+
|         751 |
+-------------+
1 row in set (0.00 sec)#学生人数
mysql> SELECT count(*) AS total FROM test_score;
+-------+
| total |
+-------+
|    11 |
+-------+
1 row in set (0.00 sec)#求语文成绩的平均值
mysql> select sum(yuwen)/count(*) from test_score;
+---------------------+
| sum(yuwen)/count(*) |
+---------------------+
|             68.2727 |
+---------------------+
1 row in set (0.04 sec)

三、聚合函数

  MySQL提供了许多聚合函数,包括AVG,COUNT,SUM,MIN,MAX等。除COUNT函数外,其它聚合函数在执行计算时会忽略NULL值。

#语文最高分
mysql> SELECT MAX(yuwen) FROM test_score;
+------------+
| MAX(yuwen) |
+------------+
|         99 |
+------------+
1 row in set (0.00 sec)#语文最低分及所在班级
mysql> SELECT class,MIN(yuwen) FROM test_score;
+-------+------------+
| class | MIN(yuwen) |
+-------+------------+
|     1 |         47 |
+-------+------------+
1 row in set (0.00 sec)#通过聚合函数求语文成绩的平均值
mysql> SELECT avg(yuwen) AS total FROM test_score;
+---------+
| total   |
+---------+
| 68.2727 |
+---------+
1 row in set (0.00 sec)#格式化后语文成绩的平均值
mysql> SELECT format(avg(yuwen),2) AS total FROM test_score;
+-------+
| total |
+-------+
| 68.27 |
+-------+
1 row in set (0.00 sec)#出去重复项后的语文成绩平均分
mysql> SELECT avg(DISTINCT yuwen) AS total FROM test_score;
+---------+
| total   |
+---------+
| 66.6667 |
+---------+
1 row in set (0.00 sec)

四、GROUP BY 与 HAVING 的应用

#GROUP BY分组
#各班级语文总分
mysql> SELECT class,sum(yuwen) AS yuwen_total   FROM test_score GROUP BY class;
+-------+-------------+
| class | yuwen_total |
+-------+-------------+
|     1 |         304 |
|     2 |         298 |
|     3 |         149 |
+-------+-------------+
3 rows in set (0.00 sec)#各班级人数
mysql> SELECT class,count(*) AS total FROM test_score GROUP BY class;
+-------+-------+
| class | total |
+-------+-------+
|     1 |     4 |
|     2 |     4 |
|     3 |     3 |
+-------+-------+
3 rows in set (0.00 sec)#各班级语文成绩的平均值
mysql> SELECT class,avg(yuwen) AS total FROM test_score GROUP BY class;
+-------+---------+
| class | total   |
+-------+---------+
|     1 | 76.0000 |
|     2 | 74.5000 |
|     3 | 49.6667 |
+-------+---------+
3 rows in set (0.00 sec)#各班级语文最高分
mysql> SELECT class,MAX(yuwen) FROM test_score GROUP BY class;
+-------+------------+
| class | MAX(yuwen) |
+-------+------------+
|     1 |         99 |
|     2 |         92 |
|     3 |         53 |
+-------+------------+
3 rows in set (0.00 sec)#语文最低分(并排序)
mysql> SELECT class,MIN(yuwen) AS yuwen FROM test_score GROUP BY class ORDER BY yuwen asc;
+-------+-------+
| class | yuwen |
+-------+-------+
|     3 |    47 |
|     1 |    51 |
|     2 |    55 |
+-------+-------+
3 rows in set (0.00 sec)#各个班级的语文成绩最低分
mysql> SELECT class,MIN(yuwen) FROM test_score WHERE yuwen<60 GROUP BY class;
+-------+------------+
| class | MIN(yuwen) |
+-------+------------+
|     1 |         51 |
|     2 |         55 |
|     3 |         47 |
+-------+------------+
3 rows in set (0.00 sec)#各个班级中平均分最低的班级
mysql> SELECT class,avg(yuwen) as yuwen FROM test_score GROUP BY class HAVING yuwen < 60;
+-------+---------+
| class | yuwen   |
+-------+---------+
|     3 | 49.6667 |
+-------+---------+
1 row in set (0.00 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569904.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

B1023 组个最小数 (20分)

B1023 组个最小数 &#xff08;20分&#xff09; 给定数字 0-9各若干个。你可以以任意顺序排列这些数字&#xff0c;但必须全部使用。目标是使得最后得到的数尽可能小&#xff08;注意 0 不能做首位&#xff09;。例如&#xff1a;给定两个 0&#xff0c;两个 1&#xff0c;三个…

关于PHP下载文件功能中header()书写方式

一、下载所用header头 header ( "Cache-Control: max-age0" ); header ( "Content-Description: File Transfer" ); header ( Content-disposition: attachment; filename.basename($new_file)); //文件名 header ( "Content-Type: application/png&…

namespace命名空间的使用

一、何为命名空间 PHP 命名空间(namespace)是在PHP 5.3中加入的。“什么是命名空间&#xff1f;从广义上来说&#xff0c;命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如&#xff0c;在操作系统中目录用来将相关文件分组&#xff0c;对于目录中的文件…

JS关键字和保留字汇总(小记)

ECMA-262 描述了一组具有特定用途的关键字。这些关键字可用于表示控制语句的开始或结束&#xff0c;或者用于执行特定操作等。按照规则&#xff0c;关键字也是语言保留的&#xff0c;不能用作标识符。以下就是ECMAScript的全部关键字&#xff08;带*号上标的是第5 版新增的关键…

HTML DOM文档对象查找元素的方法

一、HTML DOM 节点 在 HTML DOM (Document Object Model) 中 , 每一个元素都是 节点: 文档是一个文档节点。所有的HTML元素都是元素节点。所有 HTML 属性都是属性节点。文本插入到 HTML 元素是文本节点。注释是注释节点。 二、Document 对象 当浏览器载入 HTML 文档, 它就会…

MySQL的外键约束

一、MySQL外键 外键表示一个表中的一个字段被另一个表中的一个字段引用。外键对相关表中的数据造成了限制&#xff0c;使MySQL的能够保持参照完整性。只有InnoDB类型的表才可以使用外键。    1、外键的好处   可以使得两张表关联&#xff0c;保证数据的一致性和实现一些…

快速排序(C语言)

快速排序 快速排序是一种不稳定排序&#xff0c;它的时间复杂度为O(nlgn)&#xff0c;最坏情况为O(n2)&#xff1b;空间复杂度为O(nlgn)。 这种排序方式是对于冒泡排序的一种改进&#xff0c;它采用分治模式&#xff0c;将一趟排序的数据分割成独立的两部分&#xff0c;其中一…

前端页面-不可编辑控制

1. spring-form 库的使用和不可编辑控制 <form:input path"title" htmlEscape"false" class"form-control required"/> 页面元素不可编辑控制 readOnly“true”&#xff1b; 对input&#xff0c;textArea 有效 disadbled"true";…

js+获取当前域名及跳转、下载操作

一、js获取当前域名 1、方法一 var domain document.domain;2、方法二 var domain window.location.host;3、注意问题   由于获取到的当前域名不包括 http://&#xff0c;所以把获取到的域名赋给 a 标签的 href 时&#xff0c;别忘了加上 http://&#xff0c;否则单击链…

哈希表,哈希算法(C语言)

哈希表 哈希表&#xff0c;又称散列表&#xff0c;常用于在海量数据中查找数据 哈希表中元素是由哈希函数确定的。将数据元素的关键字key作为自变量&#xff0c;通过一定的函数关系H(称为哈希函数)&#xff0c;计算出的值&#xff0c;即为该元素的存储地址。其优点是&#xf…

【OP放大器】在不拆开OP放大器的情况下查一查它是否坏掉或饱和。

用高阻抗的示波器观测工作中的同相电压&#xff0b;点电压即可。 观测虚拟短路的点时&#xff0c;掌握工作中的诸条件&#xff0c;例如电源电压或周围温度的变化、负载的变动、对各种输入信号OP放大器及周边电路是否正常工作等&#xff0c;就可以得到很好的线索。转载于:https:…

Apache配置多个监听端口和访问网站的方法

一个apache服务器的vhost.conf配置文件可以设置Apache监听多个端口&#xff0c;打开Apache的配置文件httpd.conf&#xff0c;在 Listen 80 下面添加多个监听端口如&#xff1a; Listen 8010 Listen 8020 Listen 8030 这样就在vhosts.conf配置文件中增加了8010、8020和8030端…

图的邻接矩阵(C语言)

邻接矩阵 无向图和有向图在邻接矩阵中的表示方法&#xff1a; 无向图和有向图大同小异&#xff0c;在这里只以无向图为例&#xff0c;代码部分通过简单调整即可对应编译有向图 邻接矩阵数据类型定义 #define MaxVertices 100 //定义最大容量 typedef struct{ //包含权的邻…

MySQL安装成功后dos命令行设置密码

我在windows7上安装好MySQL数据库后&#xff0c;添加了MySQL的安装目录D:\wamp\MySQL\bin;到环境变量中&#xff0c;这样就可以在任何目录下使用mysql。为了安全性考虑&#xff0c;需要设置MySQL数据库的密码。通过dos命令行设置的方式如下&#xff1a; 一、进入dos命令行 按…

图的邻接表表示法(C语言)

邻接表 邻接表数据结构类型如下&#xff1a; #define MaxVertices 100 typedef struct node{ //边表 int adjvex;node* next; }EdgeNode; typedef struct{ //顶点表 int vertex; EdgeNode* edgenext; }VertexNode; typedef VertexNode AdjList[MaxVertices];//…

最小生成树构造算法--Prim算法,Kruskal算法(C语言)

最小生成树 最小生成树&#xff08;minimum spanning tree&#xff09;是由n个顶点&#xff0c;n-1条边&#xff0c;将一个连通图连接起来&#xff0c;且使权值最小的结构。 最小生成树可以用Prim&#xff08;普里姆&#xff09;算法或kruskal&#xff08;克鲁斯卡尔&#xff…

屏蔽烦人的百度搜索热点

开发时&#xff0c;在百度上搜索一些资料时&#xff0c;总是不经意看到百度搜索热点的一些新闻&#xff0c;然后经不住诱惑的标题就不经意间点了进去&#xff0c;然后就是连锁反应了。。等再次回到开发时已经是半小时之后的事了。又要把想要的东西重新捋一遍&#xff0c;导致开…

矩阵在竞赛中的应用

矩阵乘法代码&#xff1a; struct matrix {int n, m;int a[100][100]; }; // A.m B.n matrix matrix_mul(matrix A, matrix B) {matrix C;C.n A.n;C.m B.m;for (int i 0; i < A.n; i) {for (int j 0; j < B.m; j) {C.a[i][j] 0;for (int k 0; k < A.m; k) {C.a…

连通图遍历策略之广度优先搜索(C语言)

广度优先搜素&#xff08;BFS&#xff09; 广度优先搜索(又称宽度优先搜索)算法是最简便的图的搜索算法之一&#xff0c;该算法属于一种盲目搜寻法&#xff0c;目的是系统地展开并检查图中的所有节点&#xff0c;以找寻结果。换句话说&#xff0c;它并不考虑结果的可能位置&am…

多条件组合查询

一、效果图 二、前端代码 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8" /> <title>Jquery分类</title> <script src"http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></sc…