mysql 14.12_MySQL必知必会12-14 汇总 分组 子查询
12 汇总数据-用聚集类函数
用于诸如:表中的行数、表中行组的和、列中的最大值平均值等。
(python的dataframe 在输出此类结果时有优势)
MySQL 五个聚集函数(其它还有:标准偏差聚集函数等)
AVG()
COUNT()
MAX()
MIN()
SUM()
SELECT AVG(alltotal) FROM yc_tmp;
SELECT MAX(alltotal),MIN(alltotal) FROM yc_tmp
# 若只聚集不同的值,用distinct-- p ;
13 分组和排序
13.1 分组 Group by
可以跟多个变量,相当于嵌套分组;
除聚集计算语句外,select的每列均需在group by 子句中给出。
Null 值会单独分为一组;
顺序:group by 必需在where子句之后,order by 子句之前
SELECT province,Max(alltotal) as max_total
,AVG(alltotal) as avg_total FROM yc_tmp
group by province;
13.2 过滤分组 having
having过滤分组,而where只过滤行。
二者用法相同,功能也类似。having可以替代where的功能
SELECT province,Max(alltotal) as max_total
,AVG(alltotal) as avg_total FROM yc_tmp
group by province
having avg_total >1000;
也会有同时使用的情形。
另外:用where是先过滤,再分组计算,having是分组计算后再过滤
SELECT province,Max(alltotal) as max_total
,AVG(alltotal) as avg_total FROM yc_tmp
where province not in ('陕西','湖北')
group by province
having avg_total >1000
order by avg_total;
未排序结果
13.3 排序 order by
group by 出来的结果有时看起来是按分组排序的,但SQL并无此机制,故:若需要排序结果,必需用order by 指明。
排序结果
语句顺序:
Select
from
where
group by
having
order by
limit
14 子查询
子查询可用来:
实现过滤,A表中的数据符合B表某些条件时显示;
提供计算字段。
实现过滤的用法
一般顺序:先从B表中查询到需要的数据
再把该数据结果,放在下一个查询语句中使用。
子查询可以将这两个过程嵌套起来。
Select cust_id
from orders
Where order_num in ( select order_num
from orderitems
Where prod_id = 'TNT2') ;
子查询可以多级嵌套,在使用时建议使用多行,并且适当缩进
注意效率,比对项较多时,速度会慢……
实现字段计算
即正常查询语句中的某一字段,是从其它表中查询过来的。
select cust_name,
(select count(*)
from orders
Where orders.cust_id = customers.cust_id ) as orders
from customers
mysql 14.12_MySQL必知必会12-14 汇总 分组 子查询相关推荐
- 《MySQL必知必会》[01] 基本查询
<MySQL必知必会>(点击查看详情) 1.写在前面的话 这本书是一本MySQL的经典入门书籍,小小的一本,也受到众多网友推荐.之前自己学习的时候是啃的清华大学出版社的计算机系列教材< ...
- mysql日期维表sql文件_《MySQL必知必会》笔记(SQL练习+建表语句)
站在巨人的肩上 Standing On Shoulders Of Giants 部分转自:https://www.jianshu.com/p/294502893128 https://blog.csd ...
- 《MySQL必知必会》的读后感
<MySQL必知必会>的读后感 该文章是阅读<MySQL必知必会>这本书后的读后感,并且总结了这本书中的几个方面的笔记. 1 查询数据 注意SQL语句不区分大小写,因此 SEL ...
- MySQL必知必会pdf
下载地址:网盘下载 内容简介 · · · · · · <MySQL必知必会>MySQL是世界上最受欢迎的数据库管理系统之一.书中从介绍简单的数据检索开始,逐步深入一些复杂的内容,包括联结 ...
- MySQL必知必会总结
<MySQL必知必会>知识点总结: 1. 选择数据库相关命令: USE crashcourse; SHOW DATABASE; SHOW TABLES; SHOW COLUMNS FROM ...
- 《Mysql必知必会》
<Mysql必知必会> 第10章 创建计算字段 (1)使用Concat拼接串 SELECT Concat(name,'(',address,')') FROM school ORDER B ...
- mysql学习--mysql必知必会
上图为数据库操作分类: 以下的操作参考(mysql必知必会) 创建数据库 执行脚本建表: mysql> create database mytest; Query OK, 1 row affec ...
- MySQL必知必会学习历程(一)
MySQL必知必会学习历程(一) 前言 第1章 了解SQL 1.1 关键术语介绍 1.2 数据表解释实例 第2章 MySQL简介 2.1 关键术语介绍 2.2 安装mysql命令行实用程序(可选) 2 ...
- 【SQL】【读书笔记】《MySQL必知必会》
本文为<MySQL必知必会>[1]读书笔记,用于总结知识点和框架,仅供参考和交流,如有不妥请联系.由于软件版本更新,书中的一些代码已经不再适用,本文主要从SQL基本语句进行增删减.窗口函数 ...
最新文章
- STM32(六)- 系统定时器
- 论文阅读|How Does Batch Normalization Help Optimization
- arXiv 2021《Transformer in Transformer》论文笔记
- 万字字符长文带你了解遗传算法(有几个算例源码)
- 如何测得存储空间大小
- 【二】Drupal 入门之新建主题
- php 序列化 java_JAVA之序列化
- pythons实现信号分帧
- Ubuntu 18.04安装软件包下载速度慢的解决方案
- Python数据分析与挖掘实战总结
- 鼠标移到图片上图片放大
- 【代理知识】绝对值得珍藏!(转)
- 关于JPsh极光推送的基本用法和通知介绍
- 计算机控制原理 实验,计算机控制原理实验-直流电机实验.doc
- shmget() -- 建立共享内存[zz] - [LINUX]
- Java多线程——notify()与notifyAll()的区别
- 应用上云2小时烧掉近50万,创始人:差点破产
- LaTex公式、函数、希腊字母、符号、运算符号总结
- Adam优化器简单理解
- 第五章 WebRTC, SIP和 Verto
热门文章
- 如何对手机使用adb
- secureFX上传文件的时候报错,secureFX崩溃
- 初学者看看PHP explode() 函数 第6篇
- Type mismatch: cannot convert from int to Object错误
- 查看游戏服务器ip地址网站,如何查看游戏服务器IP地址
- Springboot 多线程的使用
- Oracle中执行存储过程call和exec区别
- 求立方根_初一数学立方根考点详解,立足基础,把握题型,学会方法
- ++代码实现 模糊综合算法_干货 | 十大经典排序算法最强总结(内含代码实现)...
- treeset java_Java TreeSet last()方法与示例