MySQL中的聚合函数
创建student表
CREATE TABLE IF NOT EXISTS `student` (
`id` int(4) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(12) NOT NULL,
`sex` enum('男','女') NOT NULL DEFAULT '男',
`age` tinyint(4) NOT NULL DEFAULT '24',
`edu` enum('初中','高中','大专','大本','研究生') NOT NULL DEFAULT '大专',
`salary` float(8,2) unsigned NOT NULL DEFAULT '0.00',
`bonus` float(6,2) unsigned NOT NULL DEFAULT '0.00',
`city` varchar(32) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=55 ;
插入测试数据
INSERT INTO `student` (`id`, `name`, `sex`, `age`, `edu`, `salary`, `bonus`, `city`) VALUES
(1, '洪荒少女', '女', 24, '大本', 5000.00, 1200.00, '山东省'),
(2, '苍老师', '女', 24, '大专', 750.00, 700.00, '陕西省'),
(3, 'TFboy', '男', 28, '大专', 8000.00, 800.00, '上海市'),
(4, '邓超', '男', 25, '大本', 4000.00, 800.00, '山西省'),
(5, 'AnglaBaby', '女', 21, '大本', 6000.00, 2800.00, '山东省'),
(6, '胡歌', '男', 24, '大本', 12300.00, 1580.00, '北京市'),
(7, '宁泽涛', '男', 23, '大本', 2000.00, 530.00, '陕西省'),
(8, '大白杨', '男', 24, '大本', 8900.00, 550.00, '河北省'),
(9, '舒淇', '女', 30, '研究生', 24000.00, 8500.00, '黑龙江省'),
(11, '曹广阳', '男', 34, '大本', 9500.00, 1200.00, '山东省'),
(12, '王凯', '男', 29, '大专', 2000.00, 1400.00, '山东省'),
(13, '郑爽', '男', 24, '大专', 2000.00, 1400.00, '河南省'),
(14, '井柏然', '男', 24, '大专', 2000.00, 1400.00, '内蒙古'),
(15, '陈晨', '男', 24, '大本', 2000.00, 1400.00, '云南省'),
(16, '常江波', '男', 35, '大专', 14000.00, 840.00, '湖南省'),
(17, '王张明', '男', 35, '大专', 14000.00, 840.00, '湖南省'),
(18, '赵金生', '男', 37, '大本', 18000.00, 1440.00, '湖南省'),
(19, '史月林', '女', 26, '大本', 8900.00, 1280.00, '甘肃省'),
(20, '杜青青', '女', 27, '大专', 14900.00, 2800.00, '吉林省'),
(21, '马俊鲲鹏', '男', 35, '高中', 23000.00, 3900.00, '江西省'),
(22, '陆枝', '男', 24, '研究生', 2800.00, 1200.00, '山东省'),
(23, '陆楠', '女', 38, '研究生', 7800.00, 1220.00, '北京市'),
(24, '李聪', '女', 33, '研究生', 8800.00, 1320.00, '安徽省'),
(25, '李鬼', '女', 39, '研究生', 18800.00, 2320.00, '安徽省'),
(26, '谢媛嫒', '女', 25, '大本', 9400.00, 589.00, '河南省'),
(27, '谢嫒仪', '女', 26, '高中', 7000.00, 520.00, '河北省'),
(28, '袁国淇', '男', 27, '初中', 6800.00, 580.00, '河北省'),
(29, '孙东明', '男', 24, '大专', 58000.00, 2500.00, '陕西省'),
(30, '张震', '男', 35, '大专', 38000.00, 1700.00, '江西省'),
(31, '韩振国', '男', 24, '大专', 28000.00, 2700.00, '山东省'),
(32, '韩佳佳', '女', 29, '大专', 18000.00, 3000.00, '河北省'),
(46, '洪荒少女', '女', 24, '大专', 5000.00, 1200.00, '山东省'),
(34, '韩鹏飞', '男', 24, '大专', 3000.00, 3700.00, '湖南省'),
(45, '洪荒少女', '男', 24, '大专', 5000.00, 700.00, NULL),
(37, 'Mary', '女', 29, '大专', 3000.00, 700.00, '北京市'),
(38, 'Kate', '女', 29, '大专', 3000.00, 700.00, '上海市'),
(36, '张', '女', 29, '大专', 3000.00, 800.00, '上海市'),
(39, '王新劳', '男', 35, '大本', 7800.00, 956.00, '山西省'),
(40, '姚新兵', '男', 39, '初中', 6700.00, 800.00, '河南省'),
(41, '贾原', '男', 28, '大本', 8970.00, 845.00, '北京市'),
(42, '贾似道', '男', 28, '大专', 23400.00, 2900.00, '北京市'),
(43, '舒淇', '女', 30, '研究生', 24000.00, 8500.00, '黑龙江省'),
(47, '洪荒少女', '女', 24, '大专', 5000.00, 1200.00, '山东省'),
(48, 'AnglaBaby', '女', 24, '研究生', 6000.00, 2800.00, '山东省'),
(49, 'AnglaBaby', '女', 24, '研究生', 6000.00, 2800.00, '山东省'),
(50, 'AnglaBaby', '女', 24, '研究生', 6000.00, 2800.00, '山东省'),
(52, '尼采', '男', 24, '大专', 0.00, 500.00, NULL);
1.定义:SQL中聚合函数对一组值进行计算,并返回单个的值
2.主要有:
avg():返回指定组中的平均值
count():返回指定组中项目的总数量
max():返回指定组中的数据最大值
min():返回指定组中的数据最小值
sum():返回指定组中的数据和
3.使用场景:聚合函数经常和select语句的group by子句一起使用
举例:查询出工资最高的学生的信息
分析:首先查出工资最高的值,然后按照值最高作为条件再来查询出对应的学生信息。
第一步:select max(salary) as 最高工资 from student;
第二步:select * from student where salary = (select max(salary) as 最高工资 from student);
举例:查询出学生的最高工资,最低工资,平均工资,工资总和
select max(salary) 最高工资,min(salary) 最低工资,avg(salary) 平均工资,sum(salary) 工资总和 from student;
举例:统计城市的总的数量值
select count(city) from student;
4.语法:select 字段列表 from 表名 [where 子句] group by 子句;
举例:查询出student表中男生和女生共有多少人
分析:先按照sex分组,男生一共多少,女生一共多少,最后在统计即可;也就是先分组在统计总数;
语句:select sex,count(*) 总数 from student group by sex;
可以同时对多个字段进行分组:
举例:查询出同一个城市的男生女生的平均工资
分析:需要按照city和sex同时分组,然后统计男女生的平均工资
语句:select city,sex,avg(salary) from student group by city,sex;
MySQL中的聚合函数的更多相关文章
- Mysql中使用聚合函数对null值的处理
平时因为对于数据库研习的不深,所以在面试的时候问了一些平常遇到过的问题居然没法很肯定地回答出来,实在让自己很恼怒! 这次让我记忆深刻的一个问题是: 在mysql中使用聚合函数的时候比如avg(t),t ...
- 关于mysql中使用聚合函数结果集为空,仍显示size为1,所有元素为Null问题的解决办法
转自:https://www.2cto.com/database/201806/757632.html 1.不使用聚合函数sql: select * from sys_role_data a left ...
- Mysql中常用的函数汇总
Mysql中常用的函数汇总: 一.数学函数abs(x) 返回x的绝对值bin(x) 返回x的二进制(oct返回八进制,hex返回十六进制)ceiling(x) 返回大于x的最小整数值exp(x) 返回 ...
- Mysql中使用find_in_set函数查找字符串
mysql有个表的字段的存储是以逗号分隔的,如domain字段login.s01.yy.com,s01.yy.com,s02.yy.com.现在要查找s01.yy.com这个.我们用like查找好像不 ...
- 在MongoDB中实现聚合函数 (转)
随着组织产生的数据爆炸性增长,从GB到TB,从TB到PB,传统的数据库已经无法通过垂直扩展来管理如此之大数据.传统方法存储和处理数据的成本将会随着数据量增长而显著增加.这使得很多组织都在寻找一种经济的 ...
- mysql中的group_concat函数的用法
本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . MySQL中group_concat函数 完整的语法如下: grou ...
- SQLServer 中实现类似MySQL中的group_concat函数的功能
SQLServer中没有MySQL中的group_concat函数,可以把分组的数据连接在一起. 后在网上查找,找到了可以实现此功能的方法,特此记录下. SELECT a, stuff((SELECT ...
- mysql中的substr()函数
mysql中的substr()函数和hibernate的substr()参数都一样,就是含义有所不同. 用法: substr(string string,num start,num length); ...
- mysql 分组和聚合函数
mysql 分组和聚合函数 Mysql 聚集函数有5个: 1.COUNT() 记录个数(count(1),count(*)统计表中行数,count(列名)统计列中非null数) 2.MAX() 最大值 ...
随机推荐
- 字符串编码原理--PHP数组原理与高级应用
基础知识 1.有几种表达方式(查看手册)2.单引号和双引号的区别,双引号解析变量.\n,\t等,八进制与十六进制编码 内部存储方式 c语言中怎么表示字符串,结构体存储了字符指针和长度1.字符串可以用[ ...
- Android自己定义(三)实现圆盘的百分比设置
近期一直在学习自己定义控件,昨天看到群里有人问怎样怎样实现圆盘样式的显示,学有所用,于是乎就有了这篇博客 先上图,一目了然 这里的显示颜色以及颜色块的大小你都能够自己设置 这里设置了三种颜色,相应三种 ...
- 《从零開始学Swift》学习笔记(Day 57)——Swift编码规范之凝视规范:文件凝视、文档凝视、代码凝视、使用地标凝视
原创文章.欢迎转载.转载请注明:关东升的博客 前面说到Swift凝视的语法有两种:单行凝视(//)和多行凝视(/*...*/).这里来介绍一下他们的使用规范. 1.文件凝视 文件凝视就在每个文件开头加 ...
- js canvas画柱状图 没什么高端的 就是一篇偶尔思路的
公司项目要用js画柱状图,本来想用个插件吧 chart.js 忽然一想 我们也用不了那么大的插件.自己写个吧,也能看看自己那点数学水平能够不! 有几个小亮点吧 1.函数x 和 函数y 对坐标进行了转化 ...
- Data truncation: Data too long for column
是字符集问题引起的,用show full fields from + 表名就可以看出你的列的编码格式把它改成GBK或者GB2312.uTF-8.如果还不行的话,把你表的编码格式也改成上面的编码格式,我 ...
- SVN学习(三)——在Eclipse 中安装和使用SVN客户端插件
0 基本概念了解 0.1 SVN的工作原理:采取客户端/服务器模式——在服务器的版本库中保存项目文件的各个版本,所有参与协同开发的程序员在自己本地电脑上保存一个工作副本.SVN支持程序员将本地副本更新 ...
- linux归档压缩命令
1.tar tar -cf output.tar file1.txt file2.txt .. tar -rvf output.tar fl ...
- Nginx-安装依赖及配置详解
依赖 在安装Nginx之前, 需确保系统已经安装了gcc. openssl-devel. pcre-devel和zlib-devel软件库 配置 Nginx的配置文件nginx.conf位于其安装目录 ...
- 改变Fragment的默认动画
FragmentTransaction ft = getFragmentManager().beginTransaction(); //设置进入退出动画 ft.setCustomAnimations( ...
- php中利用reset,current,next和each,list来遍历数组
1.利用for循环以及reset,current,next来遍历数组: $nums = array(11,22,33,44,55,66,77,88); for(reset($nums);current ...