`

深入浅出SQL之group by和having

SQL 
阅读更多

在介绍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子句可以让我们筛选成组后的各组数据.

分享到:
评论

相关推荐

    深入浅出SQL 中文版

    《深入浅出SQL 中文版》是一本专为学习SQL语言设计的教程,旨在帮助读者全面理解并掌握SQL(Structured Query Language)的核心概念和技术。SQL是数据库管理与数据查询的标准语言,广泛应用于各类数据存储系统中。...

    51CTO下载-深入浅出SQL(中文版)

    《深入浅出SQL(中文版)》是一本旨在帮助读者全面理解并熟练掌握SQL语言的专业教程。SQL,全称为Structured Query Language(结构化查询语言),是数据库管理与数据操作的核心工具,广泛应用于各类数据存储系统中。这...

    head first sql中文高清版深入浅出SQL中文版,学习sql入门必备

    "深入浅出"是其核心理念,旨在通过视觉丰富的插图、幽默的语言和实用的示例,帮助读者在轻松愉快的氛围中掌握SQL的基础知识。 SQL,全称为Structured Query Language,即结构化查询语言,是管理和处理关系数据库的...

    Head First SQL_深入浅出SQL(中文版).zip

    《Head First SQL》是一本非常受欢迎的SQL学习书籍,它以独特的方式深入浅出地介绍了SQL(Structured Query Language)的基础知识和高级技巧。这本书旨在帮助读者理解和掌握如何在数据库管理系统中进行数据查询、...

    SQL Server视频教程(以2000为例,结合使用范例,深入浅出,图文并茂)

    本章的学习目标是让学生掌握如何使用T-SQL语句来操作数据库中的数据,包括但不限于数据库和表的操作,SELECT语句的基本结构,以及如何使用GROUP BY和ORDER BY子句,以及汇总函数的应用。 首先,SQL语言是数据库操作...

    SQL解惑 第二版(中文)pdf带目录

    在《SQL解惑 第二版》中,作者深入浅出地讲解了SQL的基础概念,如SELECT语句、JOIN操作、子查询、聚合函数、排序与分组等,并通过具体实例让读者能更好地理解和应用这些知识。 1. SELECT语句:这是SQL中最基础的...

    SQL必知必会-中文-第4版.pdf_sql_ThisIsABook_

    《SQL必知必会》是数据库领域的一本经典著作,主要针对SQL(Structured Query Language,结构化查询语言)进行深入浅出的讲解。SQL是用于管理和处理关系数据库的标准语言,对于任何想要从事与数据打交道的工作的人来...

    SQL21天自学通,,本人就是学习这本书入门sql的

    《SQL21天自学通》这本书深入浅出地介绍了这些基本概念,并提供了丰富的实例,帮助读者快速掌握SQL操作。在学习过程中,配合书中练习,读者可以逐步提升SQL查询能力,从而在数据分析、数据库管理等领域游刃有余。...

    sql权威指南第4版

    书中还会介绍GROUP BY和HAVING子句用于数据分组和条件过滤。 三、高级查询技巧 书中深入探讨了窗口函数、集合函数和分层查询(递归查询),这些是处理复杂数据问题的关键工具。此外,书中还讲解了如何使用索引优化...

    Sql Server 电子教案

    这份教案深入浅出地介绍了SQL语言的各个方面,使初学者能够快速上手,同时也为有经验的数据库管理员提供了深入学习的机会。 教程内容可能包括以下几个主要部分: 1. **SQL基础**:介绍SQL语言的基本语法,如SELECT...

    SQL server 电子教程

    《SQL Server 电子教程》是一份专为初学者和中级学者设计的全面指南,旨在深入浅出地介绍SQL Server数据库管理系统。本教程不仅适合个人学习,也适合作为教师授课的参考资料,帮助教学者生动、直观地传授SQL Server...

    数据库原理与SQL Server

    本教学课件深入浅出地探讨了数据库原理与SQL Server的结合,旨在帮助学习者掌握数据库设计、管理以及SQL查询语言的基本技能。 首先,我们要理解数据库的基本概念。数据库是一个有组织的数据集合,它可以存储和管理...

    MySQL参考手册和SQL命令参考手册

    3. 查询语言:SELECT语句的使用,包括WHERE条件、ORDER BY排序、GROUP BY分组、HAVING过滤和JOIN操作。 4. 其他命令:如GRANT和REVOKE用于权限管理,TRUNCATE用于快速清空表。 sql循序渐进.doc文档可能是一个逐步...

    SQL网络数据库_入门教程

    学习如何使用WHERE子句进行条件筛选,GROUP BY和HAVING子句进行分组和过滤,以及ORDER BY子句进行排序,是掌握SQL查询的关键。 4. **SQL聚合函数**:COUNT、SUM、AVG、MAX和MIN是SQL中的聚合函数,它们用于对一组值...

    SQL Sever实用教程(第六版) 课程课件 PPT 郑阿奇

    《SQL Server实用教程》是学习数据库管理系统的经典教材,尤其对于初学者而言,它提供了深入浅出的讲解和丰富的实践案例。第六版的更新无疑带来了更贴近当前技术环境的内容,作者郑阿奇在课程中结合PPT形式进行教学...

    《T-SQL 2008 入门》[PDF]

    首先,书中会深入浅出地介绍T-SQL的基础语法,包括SELECT语句的使用,用于从数据库中检索数据。读者将学习如何使用不同的子句,如WHERE、GROUP BY和HAVING来过滤、分组和聚合数据,以及如何使用JOIN操作连接多个表以...

    《SQL+参考手册》中文版

    《SQL+参考手册》中文版是一本非常实用的IT学习资料,主要针对SQL查询语言进行深入浅出的讲解。SQL,全称为Structured Query Language(结构化查询语言),是用于管理和处理关系数据库的标准语言。无论你是数据库...

    SQL语句常用考核知识点说明

    本资料集“SQL语句常用考核知识点说明”旨在通过实际场景,如学生课程表,深入浅出地阐述SQL的核心概念和常用语句,为学习者提供一个全面的自我检测或考核标准。 首先,我们要了解SQL的基本结构,它主要包括以下几...

    SQL.rar_SQL高级_sql教程

    "SQL.rar_SQL高级_sql教程"这个压缩包集合了一套经典的T-SQL教程,它通过PPT的形式深入浅出地讲解了SQL的高级概念和技术。以下是根据这些PPT文件名(TP1.ppt、TPnew4.ppt、LG1V1.0.ppt、TP2_new.ppt、TP5.ppt、TP4....

    SQL 语法基础入门(ORACLE)

    本文将深入浅出地探讨SQL语法基础,特别关注ORACLE环境下的应用。 一、SQL简介 SQL是关系型数据库管理系统的通用语言,用于执行查询、插入、更新和删除数据,以及创建和修改数据库结构。在ORACLE中,SQL被用来执行...

Global site tag (gtag.js) - Google Analytics