聚合函数

先准备数据内容
MariaDB [mysql_demo1]> select * from students;
+----+-----------+------+--------+--------+--------+-----------+
| id | name      | age  | height | gender | cls_id | is_delete |
+----+-----------+------+--------+--------+--------+-----------+
|  1 | 小明      |   18 | 180.00 | 男     |      1 |           |
|  2 | 小张      |   18 | 160.00 | 男     |      2 |           |
|  3 | 小红      |   20 | 170.00 | 女     |      1 |           |
|  4 | 周杰      |   38 | 175.00 | 男     |      1 |           |
|  5 | 彭玉宴    |   56 | 150.00 | 男     |      2 |           |
|  6 | 刘德化    |   29 | 150.00 | 男     |      2 |           |
|  7 | 张学友    |   36 | 180.00 | 男     |      1 |           |
|  8 | 周杰伦    |   25 | 166.00 | 男     |      1 |           |
|  9 | 风姐      |   16 | 169.00 | 女     |      1 |           |
| 10 | 王小明    |   57 | 162.00 | 男     |      2 |          |
| 11 | 张小华    |   46 | 173.00 | 女     |      1 |           |
| 12 | 金星      |   29 | 175.00 | 女     |      1 |          |
| 13 | 黄蓉      |   66 | 185.00 | 中性   |      2 |           |
| 14 | 古天乐    |   15 | 186.00 | 保密   |      2 |           |
| 15 | 刘小海    |   31 | 175.00 | 保密   |      1 |           |
| 16 | 小月月    |   57 | 163.00 | 女     |      1 |           |
+----+-----------+------+--------+--------+--------+-----------+
16 rows in set (0.00 sec)MariaDB [mysql_demo1]> select * from classes;
+----+--------------+
| id | name         |
+----+--------------+
|  1 | python_01期  |
|  2 | python_02期  |
+----+--------------+
2 rows in set (0.00 sec)
统计行数 有一行算一行

count() --该方法效率高一些
count(1) – 该方法是统计第一列 如ID
count(列名) --该方法是判断列有多少行 如果该行有null 则少1 所以查询出来要比对 性能低
格式为:select count(
) from 表名; 后面也可以加条件 where 条件

MariaDB [mysql_demo1]> select count(*) from students;
+----------+
| count(*) |
+----------+
|       16 |
+----------+
1 row in set (0.00 sec)
MariaDB [mysql_demo1]> select count(*) from students where gender='男';
+----------+
| count(*) |
+----------+
|        8 |
+----------+
1 row in set (0.00 sec)
最大值: max()

select max(列名) from 表名 或加条件

MariaDB [mysql_demo1]> select max(height) from students;
+-------------+
| max(height) |
+-------------+
|      186.00 |
+-------------+
1 row in set (0.00 sec)
最小值: min()

select min(列名) from 表名 或加条件

MariaDB [mysql_demo1]> select min(height) from students;
+-------------+
| min(height) |
+-------------+
|      150.00 |
+-------------+
1 row in set (0.00 sec)
求和: sum()

select sum(列名) from 表名 或加条件

MariaDB [mysql_demo1]> select sum(height) from students;
+-------------+
| sum(height) |
+-------------+
|     2719.00 |
+-------------+
1 row in set (0.00 sec)
平均值: avg()

select avg(列名) from 表名 或加条件

MariaDB [mysql_demo1]> select avg(height) from students;
+-------------+
| avg(height) |
+-------------+
|  169.937500 |
+-------------+
1 row in set (0.00 sec)
四舍五入 round(123.23 , 1) 保留1位小数, 四舍五入

计算所有人的平均年龄,保留2位小数

MariaDB [mysql_demo1]> select round(avg(height),2) from students;
+----------------------+
| round(avg(height),2) |
+----------------------+
|               169.94 |
+----------------------+
1 row in set (0.00 sec)

聚合统计

group by

查询班级的学生性别
有两种方法 1:distinck 2:group by

MariaDB [mysql_demo1]> select distinct gender from students;
+--------+
| gender |
+--------+
| 男     |
| 女     |
| 中性   |
| 保密   |
+--------+
4 rows in set (0.00 sec)MariaDB [mysql_demo1]> select gender from students group by gender;
+--------+
| gender |
+--------+
| 男     |
| 女     |
| 中性   |
| 保密   |
+--------+
4 rows in set (0.00 sec)
查询每种性别的人数 可以结合count(*)
MariaDB [mysql_demo1]> select count(*),gender from students group by gender;
+----------+--------+
| count(*) | gender |
+----------+--------+
|        8 | 男     |
|        5 | 女     |
|        1 | 中性   |
|        2 | 保密   |
+----------+--------+
4 rows in set (0.00 sec)
查询每种分组数据中的人的姓名 group_concat(列名)
MariaDB [mysql_demo1]> select gender,group_concat(name) from students group by gender;
+--------+------------------------------------------------------------------------+
| gender | group_concat(name)                                                     |
+--------+------------------------------------------------------------------------+
| 男     | 小明,周杰伦,张学友,刘德化,彭玉宴,周杰,小张,王小明                      |
| 女     | 金星,张小华,风姐,小红,小月月                                           |
| 中性   | 黄蓉                                                                   |
| 保密   | 古天乐,刘小海                                                          |
+--------+------------------------------------------------------------------------+
4 rows in set (0.00 sec)
查询同种性别中的姓名和身高
MariaDB [mysql_demo1]> select gender,group_concat(name,height) from students group by gender;
+--------+------------------------------------------------------------------------------------------------------------------------+
| gender | group_concat(name,height)                                                                                              |
+--------+------------------------------------------------------------------------------------------------------------------------+
| 男     | 小明180.00,周杰伦166.00,张学友180.00,刘德化150.00,彭玉宴150.00,周杰175.00,小张160.00,王小明162.00                      |
| 女     | 金星175.00,张小华173.00,风姐169.00,小红170.00,小月月163.00                                                             |
| 中性   | 黄蓉185.00                                                                                                             |
| 保密   | 古天乐186.00,刘小海175.00                                                                                              |
+--------+------------------------------------------------------------------------------------------------------------------------+
4 rows in set (0.00 sec)
对group by 分组之后做筛选 having 条件
MariaDB [mysql_demo1]> select gender from students group by gender having gender='男';
+--------+
| gender |
+--------+
| 男     |
+--------+
1 row in set (0.00 sec)MariaDB [mysql_demo1]> select gender,group_concat(name,height) from students group by gender having gender='男';
+--------+------------------------------------------------------------------------------------------------------------------------+
| gender | group_concat(name,height)                                                                                              |
+--------+------------------------------------------------------------------------------------------------------------------------+
| 男     | 小明180.00,周杰伦166.00,张学友180.00,刘德化150.00,彭玉宴150.00,周杰175.00,小张160.00,王小明162.00                      |
+--------+------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
having 非等于
MariaDB [mysql_demo1]> select gender from students group by gender having gender!='男';
+--------+
| gender |
+--------+
| 女     |
| 中性   |
| 保密   |
+--------+
3 rows in set (0.00 sec)MariaDB [mysql_demo1]> select gender,group_concat(name,height) from students group by gender having gender!='男';
+--------+------------------------------------------------------------------------+
| gender | group_concat(name,height)                                              |
+--------+------------------------------------------------------------------------+
| 女     | 金星175.00,张小华173.00,风姐169.00,小红170.00,小月月163.00             |
| 中性   | 黄蓉185.00                                                             |
| 保密   | 古天乐186.00,刘小海175.00                                              |
+--------+------------------------------------------------------------------------+
3 rows in set (0.00 sec)
having 和 where 的区别

having 只能对分组之后的数据做条件筛选, 有having 就一定有 group by, 有 group by 不一定有having
where 是对查询的源数据做条件筛选

分页 按需加载 limit (start,count)

– limit start, count limit 限制的条数
– start: 表示从哪里开始查询, start 默认值为0, 可以省略, 跳过多少条数据
– count: 查询多少条

--获取第一页, 每页显示4条数据
select * from students limit 0,1;
select * from students limit 1;第1页  --- 分了几页  --- 分了一页  list (下标) 14 个数
select * from students limit 0,14;   0 是否和id有关联 1 2 第2页 --- 从第4条数据 查询, 查询出来4条数据
select * from students limit 4,4;第3页
select * from students limit (3-1)*4,4;第4页
select * from students limit 12,4;
#
select * from students limit (n-1)*m,m;#每页显示m条数据 ,显示n页
#100 5 20
#  5(n-1)*m,m -- 简单公式

学习mysql_day3_高级查询1(聚合查询,聚合统计)相关推荐

  1. MongoDB的使用学习之(七)MongoDB的聚合查询(spring-data-mongodb两种方式)附项目源码

    虽然只看了这一篇文章,但应该这个系列的文件应该都不错. http://www.cnblogs.com/ontheroad_lee/p/3756247.html 铛铛铛--项目源码下载地址:http:/ ...

  2. MongoDB 入门教程实战学习笔记-31-mongo 聚合查询管道 Aggregation Pipieline

    aggregation 聚合操作处理数据记录并返回计算结果. 聚合操作将多个文档中的值组合在一起, 并且可以对分组数据执行各种操作以返回单个结果. mongodb 提供了三种执行聚合的方法: 聚合管道 ...

  3. es高级客户端聚合查询api快速入门

    //聚合查询@Testvoid Collection_query() throws IOException {SearchRequest searchRequest = new SearchReque ...

  4. mongodb高级聚合查询

    在工作中会经常遇到一些mongodb的聚合操作,特此总结下.mongo存储的可以是复杂类型,比如数组.对象等mysql不善于处理的文档型结构,并且聚合的操作也比mysql复杂很多. 注:本文基于 mo ...

  5. 高级SQL查询-(聚合查询,分组查询,联合查询)

    目录 ⭐一,聚合查询 1, count函数 2,sum函数 3,avg函数 4,max函数

  6. mongodb索引生成HTML页面,mongodb高阶:索引创建、聚合查询、复制集、分片、创建备份和部署...

    先前我们讨论了mongodb的进阶查询:投影查询.分页查询以及对查询结果进行排序,从本节起我们开始学习mongodb相关的高级技术,首先我们会讨论mongodb如何创建索引,索引是数据库中最重要的东西 ...

  7. Elasticsearch(三)——Es搜索(简单使用、全文查询、复合查询)、地理位置查询、特殊查询、聚合操作、桶聚合、管道聚合

    Elasticsearch(三)--Es搜索(简单使用.全文查询.复合查询).地理位置查询.特殊查询.聚合操作.桶聚合.管道聚合 一.Es搜索 这里的 Es 数据博主自己上网找的,为了练习 Es 搜索 ...

  8. SqlService基础一篇搞定(建库建表、插入数据、修改和删除数据、基础查询、条件查询、模糊查询、聚合函数、分组查询、多表查询)

    SqlService基础知识总汇 前言 一.SQLSERVER建库建表 1.检查数据库名是否存在 2.创建数据库 3.建表 4.修改表结构 5.删除添加约束 二.SQLSERVER插入数据 1.向部门 ...

  9. java操作es聚合操作并显示其他字段_java使用elasticsearch分组进行聚合查询过程解析...

    这篇文章主要介绍了java使用elasticsearch分组进行聚合查询过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 java连接elas ...

最新文章

  1. 泰坦尼克号数据集_泰坦尼克号项目可视化
  2. Java的知识点26——File_API
  3. WM_PAINT消息小结
  4. linux压缩与解压缩 tar命令
  5. PHP7 下安装 memcache 和 memcached 扩展
  6. mysql killing slave_MySQL Slave 触发 oom-killer解决方法
  7. Python中subprocess学习
  8. C++关于string的一些用法
  9. C# 查农历 阴历 阳历 公历 节假日
  10. [转载] 树莓派4B使用 Adafruit_PCA9685 报错IOError: [Errno 121] Remote I/O error解决办法
  11. 【学术杂谈】博士毕业都去哪儿了,谈谈学术的这条路该如何走
  12. gtx1050ti最稳定的驱动_GTX1050ti显卡驱动下载_NVIDIA GeForce GTX1050ti显卡驱动Win7Win10版下载 - 系统之家...
  13. linux进入pe系统,如何进入pe系统【图文详解】
  14. 若依微服务版 数据库设计说明书
  15. 前端布局篇之文字居中显示
  16. video call BT audio音频流程
  17. centos安装Docker与使用构建业务镜像挂载卷harbor仓库的高可用及网络模式和资源限制介绍...
  18. 《九日集训》(第一讲)函数
  19. 工业交换机与商用交换机的区别有哪些
  20. C# CultureInfo列表

热门文章

  1. 有哪些「神奇」的数据获取方式?
  2. win7 android 双系统平板 p1000,优派Windows7/Android双系统ViewPad 100
  3. 对于自我的反省 - 对底层人民认知产生的商业思考
  4. python手机话费_Python软件测试中“电话费”问题的解决方案,python,版本,账单,题解...
  5. php owncloud_技术|搭建私有云:OwnCloud
  6. NodeJS返回JSON
  7. 通过CND方式引入elementui,vue,vuex,vue-router
  8. 拍掉灰尘,老想法比新想法更管用
  9. 美国要求签证申请人提供社交媒体账号
  10. 拉美外贸: 哥伦比亚网银支付PSE