SELECT命令中的GROUPBY和HAVING子句
在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数,例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。
SELECT SUM(population) FROM bbc
这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有国家的总人口数。
通过使用GROUP BY 子句,可以让SUM 和 COUNT 这些函数对属于一组的数据起作用。当你指定 GROUP BY region 时, 属于同一个region(地区)的一组数据将只能返回一行值.也就是说,表中所有除region(地区)外的字段,只能通过 SUM, COUNT等聚合函数运算后返回一个值.
HAVING子句可以让我们筛选成组后的各组数据. WHERE子句在聚合前先筛选记录.也就是说作用在GROUP BY 子句和HAVING子句前.而 HAVING子句在聚合后对组记录进行筛选。
让我们还是通过具体的实例来理解GROUP BY 和 HAVING 子句,还采用第三节介绍的bbc表。
SQL实例:
一、显示每个地区的总人口数和总面积.
SELECT region, SUM(population), SUM(area)
FROM bbc
GROUP BY region
先以region把返回记录分成多个组,这就是GROUP BY的字面含义。分完组后,然后用聚合函数对每组中的不同字段(一或多条记录)作运算。
二、 显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区。
SELECT region, SUM(population), SUM(area)
FROM bbc
GROUP BY region
HAVING SUM(area) > 1000000
在这里,我们不能用where来筛选超过1000000的地区,因为表中不存在这样一条记录。相反,HAVING子句可以让我们筛选成组后的各组数据.
文章出处:http://www.diybl.com/course/comshiti/mirosoft/mfd/mcdba/2007522/37086.html
转载于:https://www.cnblogs.com/songQQ/archive/2009/05/25/1489225.html
SELECT命令中的GROUPBY和HAVING子句相关推荐
- Oracle中start with...connect by子句的用法
connect by 是结构化查询中用到的,其基本语法是: select - from tablename start with 条件1 connect by 条件2 where 条件3; 例: se ...
- Shell脚本中循环select命令用法笔记
在Shell脚本中,select命令是一种菜单扩展的循环方式. 语法结构如下: select Menu in (list) do command done 说明:当程序运行到select语句时,会自动 ...
- mysql select having_MySQL中SELECT子句WHERE和HAVING的区别
MySQL中SELECT子句WHERE和HAVING的区别 WHERE子句: 在分组之前使用,表示从所有数据中根据条件筛选出部分数据,以完成分组的要求. 在一个WHERE子句中使用列别名是不允许的,因 ...
- 题目:某些SELECT语句中的WHERE子句不使用索引,以下说法正确的是()
题目:某些SELECT语句中的WHERE子句不使用索引,以下说法正确的是() A.where语句中使用到"!=",将不使用索引 B.where语句中使用"||" ...
- select命令详解 mysql_详解用SELECT命令在MySQL执行查询操作的教程
SQL SELECT命令被用来获取数据从MySQL数据库.可以使用此命令在mysql>提示符下或使用脚本,如PHP. 语法: 下面是通用的SQL SELECT命令的语法来从MySQL表提取数据: ...
- SQL中连接(JOIN)子句介绍
本文主要介绍 SQL(Structured Query Language)中连接(JOIN)子句的相关知识,同时通过用法示例介绍连接的常见用法. 说明:本文的用法示例是面向 MySQL 数据库的. 1 ...
- php运算符百分号,T-SQL 转义select … like中的特殊字符(百分号)
众所周知,T-SQL中LIKE运算符使用%符号表示通配符.很多时候可能需要查询包含有%的数据,比如需要查询字段coupon中含有5%的数据.那么如何使用已经有百分号(%)符号的LIKE搜索字符串呢? ...
- if for while until case select 命令
bash脚本编程 shell脚本编程的特点: 过程式编程语言 脚本类语言 解释型语言 过程式编程语言: 顺序执行结构: 以从左到右,从上到下,顺序执行所有语句命令. shell脚本的主体结构 选择执行 ...
- linux 下orapwd 未找到命令,orapwd命令中entries参数的作用
orapwd命令中entries参数的作用 作者 blue_stone E-mail: blue_stone@xinhuanet.com Blog: http://bluestone.cublog.c ...
最新文章
- 修改IIS7并发连接数目限制
- 作为IT从业者,你是如何做好个人职业规划?
- 5886. 如果相邻两个颜色均相同则删除当前颜色
- 新华三的背景_星际联盟一行莅临新华三集团杭州总部,展望分布式存储广阔发展空间...
- Python 字符串类型格式化
- 使用Xtrabackup来备份你的mysql
- SAI2 安装及导入笔刷素材
- 凯恩帝绝对坐标清零_凯恩帝系统加工件数自动清零怎么设置
- 域共享文件夹服务器怎么设置密码,域环境下共享文件夹加密、Windows 2008 Server局域网共享文件夹设置权限设置的方法...
- 批量生成图片的数据增强常用的脚本
- 【测试面试】测试面试题集锦(二)
- Linux下分割、合并PDF(pdftk)
- 怎样提交新站的网址给搜索引擎?史上最新最全的网站提交地址
- web前端svg图标使用(关于阿里iconfont的symbol 引用)
- 小游戏贪吃蛇的c++源代码
- 科技类毕业论文文献有哪些?
- 微信seo搜索精准引流怎么做呢?(案例效果图)
- MCEN90008 FLUID DYNAMICS
- 尤雨溪自述:打造Vue 3背后的故事
- 计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw