mysql数据库优化课程---10、mysql数据库分组聚合
mysql数据库优化课程---10、mysql数据库分组聚合
一、总结
一句话总结:select concat(class,' 班') 班级,concat(count(*),' 人') 人数 from user group by class;
select class,max(id),min(id),count(*),sum(id),avg(id) from user group by class;
count(*)
group by class
1、为什么操作系统要选择linux?
很多开源产品
a、开源产品或者不开源产品的第一版都是linux,windows做不到
b、没有界面的黑屏系统能够极大的节约资源,windows开机就占了1-2g的内存,windows内存释放有问题,你电脑开机几天就要重启,服务器的话也是开了几天就卡了,linux就不会,linux的回收机制还是比较强大的
c、因为linux开源,旗下的很多开源的产品,而且这些开源的产品最开始的版本也是在linux下的,甚至很多都不会发布windows版本
2、mysql随机数函数怎么使用?
order by rand()
3、mysql如何从一个表中随机取一条数据?
order by rand() limit 1
select * from user order by rand() limit 1;
4、mysql统计函数的两种方法?
count(*)
count(id)
select count(*) from user;
select count(id) from user;
5、分组聚合怎么使用?
group by class字段
按照班级的字段进行分组‘
在分组的情况下,聚合是聚合的分组的数据
统计每个班的总人数:
mysql> select concat(class,' 班') 班级,concat(count(*),' 人') 人数 from user group by class;
user表数据:
+----+----------+----------+-------+
| id | username | password | class |
+----+----------+----------+-------+
| 1 | user1 | 123 | 1 |
| 2 | user2 | 123 | 1 |
| 3 | user3 | 123 | 1 |
| 4 | user4 | 123 | 2 |
| 5 | user5 | 123 | 1 |
| 6 | user6 | 123 | 3 |
| 7 | user7 | 123 | 2 |
| 8 | user8 | 123 | 1 |
| 9 | user9 | 123 | 3 |
| 10 | user10 | 123 | 1 |
+----+----------+----------+-------+
group by分组聚合的使用:
#按条件进行分组,然后在分组的基础上进行有条件的聚合.
把每个班的第一个人取出来:
mysql> select * from user group by class;
+----+----------+----------+-------+
| id | username | password | class |
+----+----------+----------+-------+
| 1 | user1 | 123 | 1 |
| 4 | user4 | 123 | 2 |
| 6 | user6 | 123 | 3 |
+----+----------+----------+-------+
统计每个班的总人数:
mysql> select concat(class,' 班') 班级,concat(count(*),' 人') 人数 from user group by class;
+--------+--------+
| 班级 | 人数 |
+--------+--------+
| 1 班 | 6 人 |
| 2 班 | 2 人 |
| 3 班 | 2 人 |
+--------+--------+
6、统计每个班的总人数?
count(*)
group by class
select concat(class,' 班') 班级,concat(count(*),' 人') 人数 from user group by class;
+--------+--------+
| 班级 | 人数 |
+--------+--------+
| 1 班 | 6 人 |
| 2 班 | 2 人 |
| 3 班 | 2 人 |
+--------+--------+
二、内容在总结中
随机数rand函数:
select * from user order by rand() limit 1;
统计个数count函数:
#统计表总行数:
select count(*) from user;
select count(id) from user;
#统计符合条件的行数:
select count(*) from user where id>2;
求和sum():
select sum(id) from user;
平均值avg():
select avg(id) from user;
最大值max():
select max(id) from user;
最小值min():
select min(id) from user;
user表数据:
+----+----------+----------+-------+
| id | username | password | class |
+----+----------+----------+-------+
| 1 | user1 | 123 | 1 |
| 2 | user2 | 123 | 1 |
| 3 | user3 | 123 | 1 |
| 4 | user4 | 123 | 2 |
| 5 | user5 | 123 | 1 |
| 6 | user6 | 123 | 3 |
| 7 | user7 | 123 | 2 |
| 8 | user8 | 123 | 1 |
| 9 | user9 | 123 | 3 |
| 10 | user10 | 123 | 1 |
+----+----------+----------+-------+
group by分组聚合的使用:
#按条件进行分组,然后在分组的基础上进行有条件的聚合.
把每个班的第一个人取出来:
mysql> select * from user group by class;
+----+----------+----------+-------+
| id | username | password | class |
+----+----------+----------+-------+
| 1 | user1 | 123 | 1 |
| 4 | user4 | 123 | 2 |
| 6 | user6 | 123 | 3 |
+----+----------+----------+-------+
统计每个班的总人数:
mysql> select concat(class,' 班') 班级,concat(count(*),' 人') 人数 from user group by class;
+--------+--------+
| 班级 | 人数 |
+--------+--------+
| 1 班 | 6 人 |
| 2 班 | 2 人 |
| 3 班 | 2 人 |
+--------+--------+
补充:
-----------------------------------------------
分组聚合:
select class,max(id),min(id),count(*),sum(id),avg(id) from user group by class;
+-------+---------+---------+----------+---------+---------+
| class | max(id) | min(id) | count(*) | sum(id) | avg(id) |
+-------+---------+---------+----------+---------+---------+
| 1 | 10 | 1 | 6 | 29 | 4.8333 |
| 2 | 7 | 4 | 2 | 11 | 5.5000 |
| 3 | 9 | 6 | 2 | 15 | 7.5000 |
+-------+---------+---------+----------+---------+---------+
mysql数据库优化课程---10、mysql数据库分组聚合的更多相关文章
- mysql数据库优化课程---3、数据库设计是什么
mysql数据库优化课程---3.数据库设计是什么 一.总结 一句话总结: 就是设计各个字段及各个字段类型 1.char,varchar,text同存'ABC'的存储空间为多少? char(255): ...
- mysql数据库优化课程---1、数据库的本质是什么
mysql数据库优化课程---1.数据库的本质是什么 一.总结 一句话总结: 文件夹-文件:一个数据库其实就是一个的文件夹,数据库里面的表就是文件夹里的一个或者多个文件(根据数据库引擎不同而不同,My ...
- mysql数据库优化课程---9、php用什么写的
mysql数据库优化课程---9.php用什么写的 一.总结 一句话总结:php是用c语言写的,所以php里面的那些模块什么都是c语言 c 1.php用什么写的? c php是用c语言写的,所以php ...
- mysql数据库优化课程---16、mysql慢查询和优化表空间
mysql数据库优化课程---16.mysql慢查询和优化表空间 一.总结 一句话总结: a.慢查询的话找到存储慢查询的那个日志文件 b.优化表空间的话可以用optimize table sales; ...
- mysql数据库优化课程---15、mysql优化步骤
mysql数据库优化课程---15.mysql优化步骤 一.总结 一句话总结:索引优化最立竿见影 1.mysql中最常用最立竿见影的优化是什么? 索引优化 索引优化,不然有多少行要扫描多少次,1亿行大 ...
- mysql数据库优化课程---14、常用的sql技巧
mysql数据库优化课程---14.常用的sql技巧 一.总结 一句话总结:其实就是sql中那些函数的使用 1.mysql中函数如何使用? 选择字段 其实就是作用域select的选择字段 3.转大写: ...
- mysql数据库优化课程---13、mysql基础操作
mysql数据库优化课程---13.mysql基础操作 一.总结 一句话总结:mysql复制表,索引,视图 1.mysql如何复制表? like select * 1.复制表结构 create tab ...
- mysql数据库优化课程---12、mysql嵌套和链接查询
mysql数据库优化课程---12.mysql嵌套和链接查询 一.总结 一句话总结:查询user表中存在的所有班级的信息? in distinct mysql> select * from cl ...
- mysql数据库优化课程---11、mysql普通多表查询
mysql数据库优化课程---11.mysql普通多表查询 一.总结 一句话总结:select user.username,user.age,class.name,class.ctime from u ...
随机推荐
- IOS数据持久化之归档NSKeyedArchiver, NSUserDefaults,writeToFile
//2.文件读写 //支持:NSString, NSArray , NSDictionay, NSData //注:集合(NSArray, NSDictionay)中得元素也必须是这四种类型, 才能够 ...
- dot 使用笔记
Graphviz (英文:Graph Visualization Software的缩写)是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形 sudo apt-get i ...
- Java应用多机器部署定时任务解决方案
Java多机部署下定时任务的处理方案. 本文转自:http://www.cnblogs.com/xunianchong/p/6958548.html 需求: 有两台服务器同时部署了同一套代码, 代码中 ...
- 转+总结!! maven的package与install命令区别
如果b项目依赖a项目,而a打了包(package),jar仅仅时打到了a项目的target下.这时编译b项目,还是会报错,找不到所依赖的a项目,说明b项目在本地仓库是没有找到它所依赖的a项目. 然后, ...
- java生成jar包
Java编写的application程序是否可以终于形成一个类似于exe一样的可执行文件.难道就仅仅能用命令行执行? 通常有两种.一种是制作一个可运行的JAR文件包.然后就能够像.chm文档一样双击运 ...
- sql server代理系列
https://www.cnblogs.com/woodytu/tag/SQL%20Server%E4%BB%A3%E7%90%86/ SQL Server代理(12/12):多服务器管理 Woody ...
- K NEAREST NEIGHBOR 算法(knn)
K Nearest Neighbor算法又叫KNN算法,这个算法是机器学习里面一个比较经典的算法, 总体来说KNN算法是相对比较容易理解的算法.其中的K表示最接近自己的K个数据样本.KNN算法和K-M ...
- ReportView显示本地报表
from:http://www.cnblogs.com/duanshuiliu/archive/2012/07/13/2589862.html 使用ReportView控件可以显示远端Report s ...
- [笔记]使用Go语言Redigo包在Docker容器内连接Redis容器的方法
Docker容器之间的连接可以带来不少方便,下面记录下如何在自己容器内通过环境变量连接与之连接的Redis容器的方法. 先起一个Redis的Docker容器,命名为 redis,再起一个自己的Dock ...
- 微信小程序学习笔记(7)--------布局基础
ui布局基础 一.flex布局 1.flex的容器和元素 2.flex容器属性详解 1>flex-direction不仅设置元素的排列方向,还设置主轴和交叉轴如下图主轴是由上到下 2&g ...