数据库知识整理<六>
聚合函数与分组
6.1使用聚合函数进行数据统计:
聚合函数常见的有以下几种:
- count:返回该结果集中行的数目。
- sum:返回结果集中所有值的总和。
- avg:返回结果集中所有值的平均值。
- max:返回结果集中所有值得最大值。
- min:返回结果集中所有值的最小值。
- 执行行和列的计数:select count(<计数规范>) as <别名> from <表名>;其中技术规范的关键字有*、all、distinct。‘*’包括所有行包括空值null,‘all’计数所指定的列的所有非空值行,如果在都不带关键字的情况下默认此操作。‘distinct’计数指定列所有唯一非空值行。
- 返回列合计值:select sum(<计数规范>) as <别名> from <表名>;此函数与count函数唯一使用不同在于,sum不能使用通配符‘*’,其他使用基本一样。
- 获取平均值:select avg(<计数规范>) as <别名> from <表名>;使用all和distinct时,null值被忽略掉。
- 返回最大最小值:select max(<最大值规范>) from 表;select min(<最小值规范>) from 表;都是可以加上别名的。
6.2数据分组:
SQL提供的一种技术,将表中的行分组,然后在每个组上应用聚合函数,这种分组技术与聚合函数一起使用,功能尤为强大。
- 过滤分组数据: select 列A,聚合函数(聚合函数规范) from 表名 where 过滤条件 group by 列A;(这里注意:group by 后面跟的列名是和前面的select 后面的列名同步,面试被问到过这个问题。许多人都没在意过。)例如对表instant数据库输入并执行SQL语句—select studentId ,count(*) AS highPasses from studentExam where mark >70 group by studentId;此语句执行的方式为,先将考试分数小于等于70的先过滤掉,然后再将具有相同的studentId列值的行分组在一起,最后执行count函数,计算余下的行中每个学生通过考试的次数 。
- 使用having子句:
6.3Sql语句的执行顺序:
学过的子句有:
- select子句
- from子句
- where子句
- group by 子句
- order by 子句
- having 子句
执行顺序是:
- 首先是执行from子句
- 再执行where过滤
- 有分组的话就执行group by
- 为每个组计算select祖居聚合函数的值,并为每组生成查询结果中的一行。
- 如果有having子句,则根据having子句在过滤,分组计算聚合计算的结果再次过滤。
- 如果有order by子句中,则根据order by子句中的列,对结果集进行排序。
总结:聚合函数的使用可谓是向一个工具一样,重要性不言而喻。学会使用集合函数其功能是相当强大,相当优雅。Sql语句的执行顺序也是会被考察到的,也要注意区别掌握。
数据库知识整理<六>的更多相关文章
- 数据库知识整理<一>
关系型数据库知识整理: 一,关系型数据库管理系统简介: 1.1使用数据库的原因: 降低存储数据的冗余度 提高数据的一致性 可以建立数据库所遵循的标准 储存数据可以共享 便于维护数据的完整性 能够实现数 ...
- 数据库知识整理<八>
联接: 8.1理解简单的单联接: 基本上联接的结果是每个集合的笛卡尔积.例如:两个集合{a,b,c}和{a,b}的笛卡尔积是如下的成对集合:{(a,a),(a,b),(b,a),(b,b),(c,a) ...
- 数据库知识整理<五>
简单的数据查询: 5.1查询的基本结构: Sql语句:select [distinct] (* | column [alias],...) from table [where condition] [ ...
- 数据库知识整理<二>
又继续写的博客,希望自己能坚持每天写博客.分享自己的点滴,对自己成长有帮助.今天下午高强度打了三个小时篮球,小腿都抽筋了.很爽,失落的心情似乎变得开明了一些.想到了一句话:“像SB式的坚持总会有好的收 ...
- 数据库知识整理<三>
保证数据的完整性: 3.1数据完整性概述: 数据完整性的意义:我们知道数据库能防止储存垃圾数据,RDBMS实现该功能主要是通过维护数据完整性来实现的.根据数据完整性实施方法我们将其分为四类:实体完整性 ...
- 数据库知识整理<四>
使用DML语句更改数据: 所谓DML语句是指数据库操作语句,其中包括的是对数据库数据的修改.删除.插入. 4.1添加新数据: 插入单行的记录:基本的SQL语句为-insert into <表明& ...
- 数据库知识整理<七>
组合查询: 7.1使用子查询: 嵌套在其他查询中的查询,我们称之为子查询.子查询本身也可能包含一个子查询.子查询也称为内部查询,而包含子查询的语句也称为外部查询. 所有的子查询可以被分为两个类别:子查 ...
- 【OGG】OGG基础知识整理
[OGG]OGG基础知识整理 一.GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与 ...
- MySQL 索引知识整理(创建高性能的索引)
前言: 索引优化应该是对查询性能优化的最有效的手段了.索引能够轻易将查询性能提高几个数量级. // 固态硬盘驱动器有和机械硬盘启动器,有着完全不同的性能特性: 然而即使是固态硬盘,索引的原则依然成立, ...
随机推荐
- NHibernate系列文章十八:NHibernate关系之一对多(附程序下载)
摘要 这篇文章介绍NHibernate最实用的内容:关系映射. NHibernate的关系映射方式有三种: Set:无序对象集合,集合中每一个元素不能重复. List:有序对象集合,集合中的元素可以重 ...
- nginx的一些介绍和使用
nginx 的安装 我们首先进行下载安装:http://nginx.org/download/nginx-1.4.2.tar.gz 安装准备: nginx依赖于pcre库,要先安装pcre 1 yum ...
- CSS3常用选择器(一)
在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素.比如最常用到的#id,.class,标签选择器. 随着CSS3到来,增加了很多新型选择器,这里就常用的做一个总结. 1.属性选择器. 在c ...
- 如何获得 request, "request.getSession(true).setAttribute("a",a);"与“request.setAttribute("a",a);”区别
protected ServletContext getServletContext() { return ServletActionContext.getServletContext();} pro ...
- html--第一章 基础知识总结
1--<body bgcolor="red">背景颜色 2--<body backgroud="back-ground.gif"> 背 ...
- jQuery 屏幕遮罩
1.先做一个可以覆盖整个屏幕的div,颜色为黑色,然后再设置透明度,作为遮罩#zhezhao { position: absolute; top: 0px; left: 0px; width: 100 ...
- 分布式Apache ZooKeeper-3.4.6集群安装
fesh个人实践,欢迎经验交流!本文Blog地址:http://www.cnblogs.com/fesh/p/3900253.html Apache ZooKeeper是一个为分布式应用所设计的开源协 ...
- [转载] Android中Xposed框架篇---利用Xposed框架实现拦截系统方法
本文转载自: http://www.wjdiankong.cn/android%E4%B8%ADxposed%E6%A1%86%E6%9E%B6%E7%AF%87-%E5%88%A9%E7%94%A8 ...
- IE调试网页之四:F12 开发人员工具控制台错误消息 (Windows)(转载)
F12 工具控制台可以报告在运行时期间发生的错误和信息消息.本文将介绍错误消息,并提供有关如何修正这些错误的建议. 简介 F12 工具控制台错误消息提供了一些代码(例如,SEC7111 或 HTML1 ...
- LightOJ 1094 - Farthest Nodes in a Tree(树的直径)
http://acm.hust.edu.cn/vjudge/contest/121398#problem/H 不是特别理解,今天第一次碰到这种问题.给个链接看大神的解释吧 http://www.cnb ...