`
bei-jin-520
  • 浏览: 110588 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

分组查询

SQL 
阅读更多

在select 语句中可以使用group by 子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。group by 子句可以将查询结果分组,并返回行的汇总信息SQLServer 按照group by 子句中指定的表达式的值分组查询结果。

-------------------------------------------------------------------------------------
分组查询一般是用来进行统计需求的,要进行分组查询必须使用group by子句或having子句,在分组统计时要用到SQL的多行存储函数。在where条件中不能使用多行存储函数.

查询语句的select 和group by ,having 子句是聚组函数唯一出现的地方,在where 子句中不能使用聚组函数。

在带有group by 子句的查询语句中,在select 列表中指定的列要么是group by 子句中指定的列,要么包含聚组函数.
------------------------------------------------------------------------------------


部门表department:

department_id department_name
10 开发部
20 测试部
30 用服部
40 财务部
50 培训部

雇员表employees:(department_id为外键)

id employees_name department_id
1 cheng 10
2 zhou 50
3 liguo 10
4 wang 20
5 feng 30
6 ling 30
7 wu 20
8 tang 20
9 yang 40
10 tan 50
------------------------------------------------------------------------------------

按部门编号统计出表employees中的每个部门的人数(group by分组查询)
select department_id, count(*) from employees
group by department_id;

显示出部门人数少于5人的部门编号以及人数( 按照department_id来分组,having count(*)<5做为限制条件 )
select department_id 部门号, count(*) 部门人数 from employees
group by department_id
having count(*)<5;
--------------------------------------
(注意:having必须在group by子句的后面)
--------------------------------------
图:
部门号 部门人数
------------------------------
10 2
20 3
30 2
40 1
50 2
-------------------------------------------------------------------------------------
where子句和having子句可以同时使用,where子句是对要分组的行进行过滤,即选择要分组的行;
而having子句是对分组后的数据进行过滤。此时where子句必须在group by...having子句之前
-------------------------------------------------------------------------------------
显示出所有工资大于5000,且部门人数大于5个的部门号,部门最低工资和部门人数

select department_id 部门号(记住department_id 和部门号之间要空格), min(salary) 最低工资,count(*) 部门人数 from employees
where salary >5000
group by department_id
having count(*)>5;

图:
--------------------------------------
部门号 最低工资 部门人数
80 6100 34
100 6800 6

group by 按照哪个字段来排序查询,一般的group by和having一起使用,注意在查询中只能查询与group by和having有关的字段。
--------------------------------------

where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。


having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。

分享到:
评论

相关推荐

    查询(多表查询,嵌套查询,分组查询)

    根据给定的关系模式和SQL查询语句,我们可以深入地探讨多表查询、嵌套查询以及分组查询等数据库操作中的关键技术点。 ### 关系模式分析 #### 职员表 (Emp) - **主码**: `eid` (唯一标识每个员工) - **属性**: - `...

    第十一章连接查询和分组查询.zip

    在SQL(结构化查询语言)中,连接查询和分组查询是两个非常重要的概念,用于处理和分析数据库中的数据。本章将详细讲解这两个概念及其应用。 首先,我们来看连接查询。连接查询允许我们将多个表的数据结合在一起,...

    Sequelize中用group by进行分组聚合查询

    在SQL中,分组查询是通过`GROUP BY`子句来实现的,它可以将数据按照一个或多个列的值进行分组,通常结合聚合函数一起使用,以便对每个分组执行计算。 1. SQL中的分组查询 在SQL中,使用`GROUP BY`语句进行分组操作...

    sqlserver+group by分组查询分页存储过程

    根据给定的SQL Server存储过程代码片段,我们可以深入解析与SQL Server中的`GROUP BY`分组查询、存储过程以及分页技术相关的知识点。 ### SQL Server中的`GROUP BY`分组查询 `GROUP BY`子句在SQL查询语言中用于将...

    易语言学习进阶分组查询

    本资源“易语言学习进阶分组查询”是一个针对易语言使用者的进阶教程,重点在于讲解如何利用易语言进行数据的分组查询操作。 在数据库管理中,分组查询是数据分析的关键步骤,它可以帮助我们对数据进行分类和聚合,...

    连接查询和分组查询.zip

    在IT领域,尤其是在数据库管理和软件开发中,连接查询和分组查询是两个至关重要的概念,尤其是在使用C#语言与SQL Server数据库进行交互时。这里,我们将深入探讨这两个主题,并结合提供的压缩包文件“Chapter11”来...

    数据库中的分组查询及数据筛选

    ### 数据库中的分组查询及数据筛选 在数据库管理中,分组查询和数据筛选是极为重要的操作之一,它们能够帮助我们从大量的数据中提取出有用的信息,并对这些信息进行有效的分析。本文将详细介绍如何利用SQL语言来...

    oracle-plsql.zip_oracle_pl sql 分组查询_plsql_plsql 分组查询

    2. **分组查询**:在SQL中,GROUP BY语句用于根据一个或多个列对结果进行分组,常与聚合函数(如COUNT、SUM、AVG、MAX和MIN)一起使用,以便对每个分组执行统计计算。 3. **多表查询**:通过JOIN操作,可以从两个或...

    0.5 MySQL分组函数与分组查询

    MySQL 分组函数与分组查询 MySQL 中的分组函数和分组查询是数据分析和处理的重要工具,能够帮助用户快速对数据进行聚合、筛选和分析。在本节中,我们将详细介绍 MySQL 中的分组函数和分组查询,包括 SUM、AVG、MAX...

    SQL分组查询的教学探讨.pdf

    标题和描述中提到的关键词“SQL分组查询”、“教学探讨”、“数据库课程”、“教学效果”、“聚合函数”、“笛卡尔积”、“视图”、“HAVING子句”、“WHERE子句”、“ORDER BY子句”是文章讨论的核心知识点。...

    MySQL- 分组查询讲解

    MySQL中的分组查询是SQL语言中的一个重要组成部分,它允许我们对数据进行聚合操作,以便根据一个或多个列的值对结果进行分类。这种查询方法在处理大量数据时尤其有用,可以用于统计、分析和总结数据。下面我们将深入...

    test_lesson06 分组查询.pdf

    在数据库管理中,分组查询(Group By)是一种强大的功能,它允许我们对数据进行聚合操作,例如计算每个组的总和、平均值、最大值和最小值等。本篇内容将深入探讨MySQL中的分组查询及其应用。 首先,我们要理解SQL中...

    SuperMap iObjects Java SQL查询中的分组查询

    这个范例主要是实现SQL查询中的分组查询,可以查询在一定的空间范围内各个地物的数目,这个在实践中很用的较广,比如查询某一区域内A类建筑、B类建筑、C类建筑的数目,有利于后续的小区的建设等等,但是这个查询只能...

    固定gridview列按照选择进行分组查询

    在这个特定的问题中,我们关注的是如何实现"固定gridview列按照选择进行分组查询"。这涉及到对GridView的自定义、数据绑定以及查询逻辑的处理。 首先,固定gridview列指的是在用户滚动时保持表头不动,这样可以方便...

    MySQL DQL - 分组查询.md

    ### MySQL DQL - 分组查询 #### 概述 在MySQL数据库中,数据查询语言(Data Query Language,简称DQL)主要用于检索数据。其中,分组查询是DQL的一个重要组成部分,它允许用户根据一个或多个列对结果集进行分组,...

    小程序云函数分组查询.zip

    "小程序云函数分组查询.zip"这个文件包显然是针对小程序开发者设计的,重点介绍了如何在云端利用数据库操作进行数据的分组查询。下面我们将详细探讨其中涉及的关键概念和方法。 1. **云函数**:云函数是小程序的一...

    lucene分组查询优化facet

    本篇文章将详细探讨Lucene的分组查询优化,以及如何使用Facet功能来提升用户体验。 一、Lucene分组查询原理 Lucene的分组查询(Faceting)是通过对索引中的文档进行多级分类来实现的。它首先会计算每个分面值的文档...

    小程序云函数分组查询结果转换.zip

    本主题聚焦于在小程序中如何利用云函数进行分组查询并转换查询结果,主要涉及`aggregate()`、`match()`和`group()`这三个关键操作。我们将深入探讨这些概念,并通过`小程序云函数分组查询结果转换.js`文件中的示例来...

    MySql中流程控制函数/统计函数/分组查询用法解析

    MySQL是世界上最流行的关系型数据库管理系统之一,它提供了丰富的功能,包括流程控制、统计函数和分组查询,这些都是数据库查询和管理的重要组成部分。本篇文章将详细解析这三个方面的用法。 ## 1. 流程控制函数 ...

Global site tag (gtag.js) - Google Analytics