学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> SQL >> 深入浅出SQL教程之Group By和Having


深入浅出SQL教程之Group By和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子句可以让我们筛选成组后的各组数据。

技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

温故而知新...
游客 发表于2008-4-23 18:50:02
对"深入浅出SQL教程之Group By和Having"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 深入浅出SQL教程之Group By和Having 相关内容
Google搜索中 深入浅出SQL教程之Group By和Having 相关内容
雅虎中 深入浅出SQL教程之Group By和Having 相关内容
Sogou搜索中 深入浅出SQL教程之Group By和Having 相关内容

相关软件 最新回复帖子:

·深入浅出SQL教程之Group By和Having
·安装64位Windows Vista系统的四大方法
·用EXCEL表格帮忙绘制AUTOCAD同心圆
·Visual Basic编程常见问题及解答
·空手套白狼 徒手下载精美Flash动画
·Java图形用户界面设计
·ASP.NET服务器控件之RenderContents
·ASP.NET WEB服务和Flash打造MP3播放器
·Photoshop粘贴复制法排版证件照
·在Word中嵌入应用程序


  相关软件 深入浅出SQL教程之Group By和Having相关文章
SQL Server 2000启动1069错误解决方法 精华:用SQL数据库批量插入数据简介
通过查询分析器对比SQL语句执行效率 SQL Server 数据库连接字符串的声明
SQL Server 2005—数据库管理10个特点 深入浅出SQL之左连接、右连接和全连接
SQL概述及在网络安全中的应用(下) SQL概述及在网络安全中的应用(上)
SQL注入奇招致胜 Union查询轻松看电影 有孔就入 SQL Injection的深入探讨
详解SQL注入攻击的原理及其防御措施 突破一流信息监控拦截系统进行SQL注射
安防有道:实施自动SQL注入攻击测试 深入浅出SQL教程之嵌套SELECT语句
解决MSSQL占用过多内存的简单方法介绍 SQL Server连接VFP数据库的实现方法
实例演示在SQL数据库中启用全文检索 应用事件探查器优化SQL Server系统
SQL Server中读取XML文件的简单做法 检测解决SQLServer延迟阻塞I/O问题