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 汇总 分组 子查询相关推荐

  1. 《MySQL必知必会》[01] 基本查询

    <MySQL必知必会>(点击查看详情) 1.写在前面的话 这本书是一本MySQL的经典入门书籍,小小的一本,也受到众多网友推荐.之前自己学习的时候是啃的清华大学出版社的计算机系列教材< ...

  2. mysql日期维表sql文件_《MySQL必知必会》笔记(SQL练习+建表语句)

    站在巨人的肩上 Standing On Shoulders Of Giants 部分转自:https://www.jianshu.com/p/294502893128 https://blog.csd ...

  3. 《MySQL必知必会》的读后感

    <MySQL必知必会>的读后感 该文章是阅读<MySQL必知必会>这本书后的读后感,并且总结了这本书中的几个方面的笔记. 1 查询数据 注意SQL语句不区分大小写,因此 SEL ...

  4. MySQL必知必会pdf

    下载地址:网盘下载 内容简介  · · · · · · <MySQL必知必会>MySQL是世界上最受欢迎的数据库管理系统之一.书中从介绍简单的数据检索开始,逐步深入一些复杂的内容,包括联结 ...

  5. MySQL必知必会总结

    <MySQL必知必会>知识点总结: 1. 选择数据库相关命令: USE crashcourse; SHOW DATABASE; SHOW TABLES; SHOW COLUMNS FROM ...

  6. 《Mysql必知必会》

    <Mysql必知必会> 第10章 创建计算字段 (1)使用Concat拼接串 SELECT Concat(name,'(',address,')') FROM school ORDER B ...

  7. mysql学习--mysql必知必会

    上图为数据库操作分类: 以下的操作参考(mysql必知必会) 创建数据库 执行脚本建表: mysql> create database mytest; Query OK, 1 row affec ...

  8. MySQL必知必会学习历程(一)

    MySQL必知必会学习历程(一) 前言 第1章 了解SQL 1.1 关键术语介绍 1.2 数据表解释实例 第2章 MySQL简介 2.1 关键术语介绍 2.2 安装mysql命令行实用程序(可选) 2 ...

  9. 【SQL】【读书笔记】《MySQL必知必会》

    本文为<MySQL必知必会>[1]读书笔记,用于总结知识点和框架,仅供参考和交流,如有不妥请联系.由于软件版本更新,书中的一些代码已经不再适用,本文主要从SQL基本语句进行增删减.窗口函数 ...

最新文章

  1. STM32(六)- 系统定时器
  2. 论文阅读|How Does Batch Normalization Help Optimization
  3. arXiv 2021《Transformer in Transformer》论文笔记
  4. 万字字符长文带你了解遗传算法(有几个算例源码)
  5. 如何测得存储空间大小
  6. 【二】Drupal 入门之新建主题
  7. php 序列化 java_JAVA之序列化
  8. pythons实现信号分帧
  9. Ubuntu 18.04安装软件包下载速度慢的解决方案
  10. Python数据分析与挖掘实战总结
  11. 鼠标移到图片上图片放大
  12. 【代理知识】绝对值得珍藏!(转)
  13. 关于JPsh极光推送的基本用法和通知介绍
  14. 计算机控制原理 实验,计算机控制原理实验-直流电机实验.doc
  15. shmget() -- 建立共享内存[zz] - [LINUX]
  16. Java多线程——notify()与notifyAll()的区别
  17. 应用上云2小时烧掉近50万,创始人:差点破产
  18. LaTex公式、函数、希腊字母、符号、运算符号总结
  19. Adam优化器简单理解
  20. 第五章 WebRTC, SIP和 Verto

热门文章

  1. 如何对手机使用adb
  2. secureFX上传文件的时候报错,secureFX崩溃
  3. 初学者看看PHP explode() 函数 第6篇
  4. Type mismatch: cannot convert from int to Object错误
  5. 查看游戏服务器ip地址网站,如何查看游戏服务器IP地址
  6. Springboot 多线程的使用
  7. Oracle中执行存储过程call和exec区别
  8. 求立方根_初一数学立方根考点详解,立足基础,把握题型,学会方法
  9. ++代码实现 模糊综合算法_干货 | 十大经典排序算法最强总结(内含代码实现)...
  10. treeset java_Java TreeSet last()方法与示例