`
fatherican
  • 浏览: 53041 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

SQL Server 2005---聚合函数(分组函数)

 
阅读更多

转载于:http://blog.csdn.net/hanren86/article/details/5744785

聚合函数对一组值执行计算,并返回单个值。除了 COUNT 以外,聚合函数都会忽略空值(NULL)。聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用。

所有聚合函数均为确定性函数。也就是说,只要使用一组特定输入值调用聚合函数,该函数总是返回相同的值。

聚合函数只能在以下位置作为表达式使用:

  • SELECT 语句的选择列表(子查询或外部查询)。
  • COMPUTE 或 COMPUTE BY 子句。
  • HAVING 子句。

    1.COUNT( { [ ALL ]expression| * } )

    SQL提供了COUNT函数来查询满足设定标准的记录的数量。我们可以使用单独COUNT(*)语法来检索一个表内的行数。此外,还可以利用WHERE子句来设置计数条件,返回特定记录的条数。例如,假设我们的产品销售经理想了解公司处理了多少张要求购买100个以上产品的订单。下面是满足这个条件的SQL查询脚本:

    SELECT COUNT(*) AS '大订单数量'

    FROM ProductOrders

    WHERE 数量> 100

    返回结果如下:

    大订单数量

    ----------------------

    3

    COUNT函数还允许使用 DTINCT关键字和表达式来计算满足表达式的值在目标数据中出现的数量。同样地,还可以使用ALL关键字来返回满足表达式的值的全部数量,不管其中有没有重复值。例如,产品经理想通过一个简单查询返回数据库中“所在地”的数量。

      首先我们来看看使用ALL关键字的查询:

    SELECT COUNT(ALL 所在地 ) As ' 所在地数量 '

    FROM ProductOrders

    返回的结果为:

    所在地数量

    --------------------

    7

    显然这不是我们需要的结果。因为根据ProductOrders表所示,所有订单的所在地只有三个,分别是北美洲、非洲、欧洲。下面让我们来用DISTINCT关键字来代替看看: 

      

    SELECT COUNT(DISTINCT 所在地) As '所在地数量'

    FROM ProductOrders

    返回的结果为:

    所在地数量

    --------------------

    3

    这才是我们想要的结果。

    2.SUM函数

    返回表达式中所有值或仅 DISTINCT 值的总和。SUM 只能与数字列一起使用。空值将被忽略。

    这个函数通常在SELECT语句中使用,返回系列值的总数。假设产品项目经理想了解目前为止商品的总销售额,那么我们可以使用以下的查询脚本:

    SELECTSUM(数量)AS总数

      FROMProductOrders

      执行语句将返回以下结果:

      Total

      -----------

      1837

    3.AVG函数

    返回组中各值的平均值。空值将被忽略。

    AVG函数(平均函数)使用方法和SUM类似,它给我们提供系列值的算术平均数。这次我们可以尝试稍微复杂点的任务:找出北美洲大陆所有订单的金额平均值。注意,我们需要将“数量”列和“单价”列相乘计算出每张订单的金额总数。查询脚本如下:

      

    SELECT AVG(单价* 数量) As 平均金额

    FROM ProductOrders

    WHERE 所在地 = “北美洲”

    返回结果如下:

    平均金额

    ---------------------

    862.3075

    4.MAX函数

    返回表达式中的最大值。空值将被忽略。

    MAX()函数返回给定数据集中的最大值。我们可以给该函数一个字段名称来返回表中给定字段的最大值。还可以在MAX()函数中使用表达式和GROUP BY从句来加强查找功能。

    还是ProductOrders表,假设我们的产品经理想要从这个数据库中找到给公司带来最多收入的那份订单。我们可以使用以下查询来找到这张订单,并返回该订单的销售总金额:

    SELECTMAX(数量*单价)As'最大的订单'

      FROMProductOrders

      返回结果如下:

      最大的订单

      ---------------------

      2517.58

    5.MIN函数

    返回一组原子值 $arg 中的最小值。

    MIN()函数的用法类似,但返回表达式的最小值。让我们用MIN()函数来尝试稍微复杂一点的查询。我们的销售部门目前正在分析小订单的数据。他们想要查询每个所在地的最小订单。这除了要在表达式中计算值外,还需要用到GROUP BY从句来总结所在地的数据。SQL查询如下:

    SELECT 所在地 , MIN( 数量 * 单价 ) AS ' 最小订单 '

    FROM ProductOrders

    GROUP BY 所在地

    返回结果如下:

    所在地 最小订单

    ------------- ---------------------

    非洲 167.04

    欧洲 2099.02

    北美洲 70.65

  • 分享到:
    评论

    相关推荐

      SQL SERVER T-SQL

      - **聚合函数**:了解SUM、AVG、COUNT等聚合函数的使用方法,进行统计分析。 #### 五、全文本搜索与全文索引 - **全文索引**:介绍如何在SQL Server中创建和管理全文索引,提高文本搜索性能。 - **全文搜索**:学习...

      sql server 2012 T-SQl基础教程 源码和示例数据库

      Single-Table Queries**:这一章主要讲解单表查询的基本语法,包括SELECT语句的使用,以及如何通过WHERE子句筛选数据,理解聚合函数如COUNT(), SUM(), AVG()等,以及GROUP BY和HAVING子句在数据分组中的应用。...

      SQL Server T-SQL Recipes, 4th Edition

      - **聚合函数**: 讲解`COUNT`, `SUM`, `AVG`等聚合函数的使用技巧。 - **分组**: 介绍`GROUP BY`子句的作用,以及如何根据特定字段对结果进行分组汇总。 - **HAVING子句**: 讲解如何使用`HAVING`子句来进一步筛选...

      sql server 2005 技术内幕t-sql查询源码

      1. **基础查询语句**:这部分内容可能涵盖了SELECT语句的基本用法,包括选择列、表连接、聚合函数(如COUNT、SUM、AVG等)、分组(GROUP BY)和排序(ORDER BY)等。 2. **子查询与联接**:讲解如何使用子查询进行...

      《Microsoft SQL Server 2005技术内幕:T-SQL查询》示例代码

      《Microsoft SQL Server 2005技术内幕:T-SQL查询》是一本深入解析SQL Server 2005中T-SQL查询语言的专业书籍。T-SQL(Transact-SQL)是微软对标准SQL的扩展,是SQL Server的核心组件,用于数据库管理、数据查询和...

      MicroSoft Sql Server2005:T-Sql查询

      本篇文章将深入探讨T-SQL查询在SQL Server 2005中的应用,以"sqlserver2005 技术内幕:T-SQL查询第一章"为引,带你走进T-SQL的世界。 ### 1. T-SQL基础 T-SQL是SQL的扩展,它是SQL Server的标准查询语言,包含了...

      Microsoft SQL Server2005-1

      总结来说,SQL Server 2005中的聚合函数和GROUP BY子句是进行数据分析和统计的核心工具,配合WHERE和HAVING子句,能够实现灵活的数据筛选和分组操作,满足各种复杂的数据查询需求。理解并熟练运用这些概念和语法,...

      Microsoft SQL Server 2005技术内幕:T-SQL查询的源代码

      《Microsoft SQL Server 2005技术内幕:T-SQL查询的源代码》是一本深入探讨SQL Server 2005中T-SQL查询技术的专业书籍。T-SQL(Transact-SQL)是Microsoft SQL Server数据库管理系统中用于数据操作、查询、存储过程...

      Microsoft SQL Server 2005技术内幕全套(三):T-SQL查询.part1

      《Microsoft SQL Server 2005技术内幕全套(三):T-SQL查询》是一部深入探讨SQL Server 2005数据库管理系统中Transact-SQL(T-SQL)查询技术的专业著作。本部分主要聚焦于如何高效、准确地在SQL Server 2005环境中...

      sqlserver经典 2005技术内幕 中文pdf版 4本全

      这本书将深入讲解如何使用T-SQL进行数据检索,包括基本的SELECT语句、联接、子查询、聚合函数和窗口函数。还会介绍如何进行数据排序、分组和过滤,以及如何编写复杂的嵌套查询。此外,书中可能还会涉及数据插入、...

      SQL Server 2005 技术内幕四部

      读者将学习到如何编写复杂的SELECT语句,使用JOIN操作连接多表,掌握子查询、聚合函数以及窗口函数的用法,同时还会涉及数据的排序、分组和过滤。此外,书中可能还会讨论到动态SQL和存储过程的编写,以实现更高级的...

      [电子书] SQL Server 2012 T-SQL 实用技巧 (英文版)

      3. **聚合函数与窗口函数**:介绍SUM、AVG、COUNT等聚合函数,以及ROW_NUMBER、RANK和LEAD/LAG等窗口函数,它们在统计分析和排名问题中扮演重要角色。 4. **子查询与CTE**:深入探讨子查询的使用,以及如何利用公用...

      SQL Server 2012 T-SQL 实用技巧 (英文版)

      - **选择查询(SELECT)**: 学习如何编写复杂的SELECT语句,包括联接、子查询、聚合函数、排序和分组。 2. **高级查询技巧** - **窗口函数**: 使用RANK(), ROW_NUMBER(), DENSE_RANK()等函数进行行编号、分区计算...

      T-SQL性能调优秘笈 基于SQL Server 2012窗口函数_PDF电子书

      - `SUM() OVER`、`AVG() OVER`等聚合函数:可以在特定窗口范围内执行聚合操作。 #### 三、性能调优策略 - **索引优化**:合理的索引可以显著提高查询效率,特别是在窗口函数涉及的表结构中。可以通过分析查询计划...

      基于sql server 2005学习sql

      此外,还要了解子查询、联接(JOIN)、聚合函数(如COUNT、SUM、AVG等)以及排序和分组(ORDER BY与GROUP BY)的概念。 三、数据库设计 在SQL Server 2005中创建和管理数据库是关键步骤。理解关系数据库模型,包括...

      Inside Microsoft SQL Server 2005: T-SQL Programming

      书中的章节会详细讲解这些基本操作,包括子查询、联接、聚合函数以及排序和分组。 2. **高级查询**:深入学习窗口函数、递归查询、并行查询和动态SQL,这些功能使得复杂的数据分析和处理变得可能。 3. **存储过程...

      Sqlserver2008--学习笔记(自己总结)

      ### Sqlserver2008 学习笔记精要 #### 第一章 SQL Server 基础 ##### 1. T-SQL 语句基础 - **创建数据库**: 使用 `CREATE DATABASE` 语句来创建一个新的数据库。例如: ```sql CREATE DATABASE 新数据库名; ``...

      SQL SERVER 2008 T-SQL 基础

      这包括基本的字段选择、表连接、聚合函数(如COUNT、SUM、AVG、MAX、MIN)以及分组(GROUP BY)和排序(ORDER BY)操作。此外,还有子查询和联接查询,用于处理更复杂的查询需求。 2. **数据插入、更新与删除**:...

      inside.microsoft.sql.server.2005.t-sql.querying

      1. **基础查询**:涵盖SELECT语句的基本用法,包括选择列、从表中选择行、排序结果、分组数据以及使用聚合函数(如COUNT、SUM、AVG等)。 2. **联接操作**:详细介绍了内连接、外连接(左连接、右连接、全连接)...

      SQLServer2005函数大全

      - `GROUP BY` 与 `HAVING`:用于数据分组和条件过滤,通常与聚合函数一起使用。 了解并熟练掌握这些函数是SQL Server 2005中进行复杂查询和数据分析的基础,能够极大地提高工作效率。在实际应用中,应根据具体需求...

    Global site tag (gtag.js) - Google Analytics