SQL中Groupby和Having的使用方法
作者:佚名 来源:zxbc.cn 发布时间:2008-12-29 13:54:00
在介绍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子句可以让我们筛选成组后的各组数据.


猜你喜欢
- python eval函数功能:将字符串str当成有效的表达式来求值并返回计算结果。函数定义:eval(expression, global
- 本文实例讲述了Python3实现的反转单链表算法。分享给大家供大家参考,具体如下:反转一个单链表。方案一:迭代# Definition fo
- 前言在编程开发中,个人觉得,只要按照规范去做,很少会出问题。刚开始学习一门技术时,的确会遇到很多的坑。踩的坑多了,这是好事,会学到更多东西,
- 问题: pydev使用wx库开发的过程中,import时碰到wx可以识别,但是其它很多函数和变量上面全部是红叉,即无法识别。 解决方法: 1
- 下面我们来看下,如何利用它来删除一个表中重复记录: If Exists(Select * From tempdb.Information_S
- 矛盾出来了,像我们这些小作坊,基本都是设计布局一人搞定。甚至还有加后台程序的。假设设计的时候考虑布局了,我们都有这个能力进行调整。但像大公司
- 本文讲述的是通过python+tkinter编写一个简单桌面放大镜的代码示例,具体如下。代码思路:首先全屏截图,然后在鼠标当前位置以小窗口进
- 散点图,顾名思义是一些散乱的点构成的图。那么这些散乱的点有什么作用呢?散点图通过用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是
- TFTP文件传输功能:1、获取文件列表2、上传文件3、下载文件4、退出第一部分,TftpServer部分。①导入相关模块from socke
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&
- 1. 准备工作首先编写getHtml函数,传入markdown文本字符串,这里使用fs读取markdown文件内容,返回值是转换过后的字符串
- 之前修改两张及以上表的时候,总得需要用几次语句才修改,万一其中一条没修改上,又没事务机制的话,处理很麻烦,于是想到能不能一条语句完成呢? 结
- 一、背景起源于一个问题:怎样找到字符串中出现次数最多的字符其实使用max函数就能很轻松的解决这个问题:代码:str1 = "AAA
- 前言:文件处理是任何 Web 应用程序的重要组成部分。Python 有几个用于创建、读取、更新和删除文件的函数。1.文件处理在 Python
- 引言在Go语言中,我们通常会用到panic和recover来抛出错误和捕获错误,这一对操作在单协程环境下我们正常用就好了,并不会踩到什么坑。
- 代码如下: 代码如下:///<summary> /// 将两个列不同的DataTable合并成一个新的DataTab
- 本文实例讲述了通过 jQuery EasyUI框架创建一个RSS阅读器,分享给大家供大家参考。具体如下:运行效果截图如下:我们将使用以下插件
- 全文索引在 MySQL 中是一个 FULLTEXT 类型索引。FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE
- python运行或调用另一个py文件或参数1. 运行另一个py文件(1)在file_A.py中运行file_B.py文件import oso
- 正则表达式是Python程序设计中非常实用的功能,本文就常用的正则表达式做一汇总,供大家参考之用。具体如下:一、字符串替换1.替换所有匹配的