创建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;


最新文章

  1. UIAlertController 部分用法及属性
  2. hdu2929 Bigger Is Better
  3. xdebug所有相关方法函数详解(中文翻译版)
  4. python的正负无穷float("inf")的用法
  5. js 优化
  6. ansible加密命令
  7. HDU 4511 (AC自动机+状态压缩DP)
  8. WIN7 如何关闭Aero
  9. DataTable和List集合互转
  10. java实现冒泡排序,选择排序,插入排序,快速排序(简洁版)及性能测试
  11. error -27257: Pending web_reg_save_param/reg_find/create_html_param[_ex] request(s) detected and reset at the end of iteration number 1
  12. SQL于DML(数据库操作语言)采用
  13. C# socket编程实践
  14. 调试设置移动端Web开发环境搭建实践
  15. pwnable.kr-passcode-witeup
  16. Excel复制粘贴假死
  17. tensorflow:验证码的识别(上)
  18. NATS—发布/订阅机制
  19. ubuntu java 环境配置
  20. golang fmt用法举例

热门文章

  1. C++五种迭代器之间的关系
  2. Android实现蓝牙耳机连接
  3. Windows网络配置脚本
  4. Spring 集成hibernate时配置连接释放模式
  5. 记一次SmtpClient发送邮件引发的系列问题
  6. 怎样设置mysql的表不区分你大写和小写
  7. unity, 对于Debug.Log输出的log,可以双击定位到代码
  8. 下载文件,ie文件名称乱码问题
  9. C语言基础(19)-结构体,联合体,枚举和typedef
  10. Django数据库表的关联问题