1、有些时候需要数据的汇总值,而不是数据本身,比如对某些数据求和、计数、求最大最小值、求平均值,因此就有了5个聚集函数:AVE()、COUNT()、MAX()、MIN()、SUM():

  (1)求平均值:AVE(),一个AVG()只对一个字段有效,注意AVE()忽略NULL值,而不是将其作为“0”参与计算:

SELECT AVG(字段名1),```,AVG(字段名n) FROM 表名 WHERE 字句;

    

  (2)计数:COUNT(),两种用法:COUNT(*):对表中行数进行计数,不管是否有NULL;COUNT(字段名):对特定列有数据的行进行计数,忽略NULL值

  (3)求最大、最小值:MAX()、MIN():多用于数值和日期,文本也可以用,升序排列的最大或最小值。都忽略NULL

  (4)求和:SUM():可以对单个列求和,也可以对多个列乘积求和:

  (5)ALL与DISTINCT:可用于以上5个函数,默认是ALL,对非重复值计算是DISTINCT,用在函数的参数中,与字段名用空格隔开

  (6)聚集函数的组合:以上几个函数可以包含在SELECT语句中,比如求Products中的商品总数、平均价格、最高价格、最低价格

2、将数据在逻辑上进行分组:比如求各个供应商的商品总数、平均价格、最高价格、最低价格

  

  (1)GROUP BY的使用规定:

    1.GROUP BY 语句必须出现在WHERE之后,ORDER BY 之前

    2.分组列中若有NULL,这也将作为一组

    3.除聚集计算语句外,SELECT中的选择列必须出现在GROUP BY 中

    4.GROUP BY 的列必须是检索列或者表达式,若是在SELECT中使用的表达式,在GROUP BY 中也要使用相同的表达式,还不能用别名

    5.GROUP BY 可以包含任意数目的列,可以嵌套

3、将分组进行过滤:HAVING,与GROUP BY 配合使用,与WHERE类似,只是WHERE针对行,HAVING针对逻辑分组,比如列出有2个及以上产品,并且其价格大于等于4的供应商:

    WHERE过滤掉的行不参与GROUP BY的分组

4、分组(GROUP BY)与排序(ORDER BY):GROUP BY输出的数据不一定有顺序;ORDER BY 可以使用任意列(包括非选择列),但GROUP BY只能且必须使用选择列火表达式列;ORDER BY 可以没有,但GROUP BY 在有选择列(或表达式列)与聚集函数一起时,必须使用。

5、SELECT、FROM、WHERE、GROUP BY、HAVIN、GORDER BY顺序

0007《SQL必知必会》笔记03-汇总与分组数据的更多相关文章

  1. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  2. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  3. 《SQL必知必会》学习笔记二)

    <SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...

  4. 【SQL必知必会笔记(3)】SELECT语句的WHERE子句数据过滤操作

    上个笔记主要介绍了利用SELECT语句检索单个/多个/所有列,并利用DISTINCT关键字检索具有唯一性的值.利用LIMIT/OFFSET子句限制结果:以及利用ORDER BY子句排序检索出的数据,主 ...

  5. 【SQL必知必会笔记(2)】检索数据、排序检索数据

    上个笔记中介绍了一些关于数据库.SQL的基础知识,并且创建我们后续练习所需的数据库.表以及表之间的关系,从本文开始进入我们的正题:SQL语句的练习. 文章目录 1.检索数据(SELECT语句) 1.1 ...

  6. 【SQL必知必会笔记(1)】数据库基础、SQL、MySQL8.0.16下数据库、表的创建及数据插入

    文章目录 1.数据库基础 1.1 数据库(database) 1.2 表(table) 1.3 列和数据类型 1.4 行 1.5 主键 2.什么是SQL 3.创建后续练习所需数据库.表(MySQL8. ...

  7. 《SQL必知必会》学习笔记整理

    简介 本笔记目前已包含 <SQL必知必会>中的所有章节. 我在整理笔记时所考虑的是:在笔记记完后,当我需要查找某个知识点时,不需要到书中去找,只需查看笔记即可找到相关知识点.因此在整理笔记 ...

  8. 读书笔记--SQL必知必会--建立练习环境

    书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL in 10 Minutes - Fourth Edition> MyS ...

  9. 读书笔记--SQL必知必会12--联结表

    12.1 联结 联结(join),利用SQL的SELECT在数据查询的执行中联结表. 12.1.1 关系表 关系数据库中,关系表的设计是把信息分解成多个表,一类数据一个表,各表通过某些共同的值互相关联 ...

  10. 《SQL必知必会》学习笔记(一)

    这两天看了<SQL必知必会>第四版这本书,并照着书上做了不少实验,也对以前的概念有得新的认识,也发现以前自己有得地方理解错了.我采用的数据库是SQL Server2012.数据库中有一张比 ...

随机推荐

  1. MySQL: Tree-Hierarchical query

             http://dba.stackexchange.com/questions/30021/mysql-tree-hierarchical-query     No problem. ...

  2. maven安装与配置(第一天学习笔记)

    Maven下载:http://maven.apache.org/ 1.首先要确保JDK已经安装与配置(注意:用的是apache-maven-3.3.3的JDK1.6不行,我用的是JDK1.8) 2.把 ...

  3. HDU 5091---Beam Cannon(线段树+扫描线)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5091 Problem Description Recently, the γ galaxies bro ...

  4. linux 如何改变文件属性与权限

    我们知道档案权限对于一个系统的安全重要性,也知道档案的权限对于使用者与群组的相关性, 那如何修改一个档案的属性与权限呢? 我们这里介绍几个常用于群组.拥有者.各种身份的权限的指令.如下所示: chgr ...

  5. node.js如何处理请求的路由

    var http = require( 'http' ) var handlePaths = [] /** * 初始化路由配置数组 */ function initRotute() { handleP ...

  6. css3加载ing动画

    项目中ajax交互成功前总会需要给用户提醒,比如请稍候.正在加载中等等,那个等待的动图以前项目中用的是gif,在移动端画质很渣,有毛边,于是在新项目中用css3展示加载中的动画效果. function ...

  7. 自定义Sublime Text图标详细教程

    改造后的Sublime 先看看我改造后的神器图标,接下来你就知道下面是干什么的了 :               之前无意间在刘哇勇的博客上看到这么一篇文章,很好奇就尝试着更改Sublime Text ...

  8. 精通 CSS 选择器(二)

    补充了一些之前遗漏掉的选择器以及一些在 Selectors Level 4 中新定义的选择器. 属性选择器不区分大小写 [attribute="value" i],在 Select ...

  9. 制作具有SSH、MySQL功能的Chroot

    由于工作需求,需要在Linux上建立SSH.MySQL两个用户. 使这两个账户连接到跳板机后仅能执行有限的命令(SSH用户只能执行SSH命令,MySQL用户只能执行MySQL命令). MySQL账户C ...

  10. 愚人节大狂欢 – ADN DevBlog谎话连篇友谊赛

    愚人节过去了,你被捉弄了没有? :) 借这个机会,ADN的哥们儿也发泄狂欢了一把,我们4月1号当天在ADN DevBlog上发了一堆谎话连篇的blog,没有一个说实话的,哈哈.这是我们team内部进行 ...