`
anna_zr
  • 浏览: 200628 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

使用聚集函数 SQL语言的高级用法

阅读更多
计算诸如平均值和总和的函数被称为聚集函数(Aggregate Functions )。当使用聚集函数时,SQLServer对整个表或表里某个组中的字段进行汇总、计算,然后为它创建相应字段的单个的值。
可以在SELECT语句中单独使用聚集函数,也可以与语句GROUP BY联合使用;
除了COUNT(*)函数,如果记录集中没有满足WHERE子句的记录,则所有的聚集函数都将返回空值。如果没有满足WHERE子句的记录,COUNT(*)函数返回0。
注意:适当的索引能够加快聚集函数的运行。
字段的数据类型决定了你可以用在这个字段上的聚集函数类型。下面的表中列出了聚集函数和数目类型间的关系。


函数 数据类型
COUNT COUNT是唯一一个可以用于text,ntext或image数据类型的函数。 
MIN和MAX MIN和MAX函数不能用于数据类型是bit的字段。
SUM和AVG SUM和AVG函数只能用于数据类型是int、smallint、tinyint、decimal、numeric、float、real、money和smanmoney的字段。
在你使用函数SUM和AVG时,SQLServer把结果集中的smallim或tinyint这些数据类型当做int处理。



聚集函数的部分语法如下:


SELECT [ ALL | DISTINCT ]
[ TOP n [PERCENT] [ WITH TIES] ] <select_list>
[ INTO new_table ]
[ FROM <table_sources> ]
[ WHERE <search_conditions> ]
[ [ GROUP BY [ALL] group_by_expression [,.n]]
[HAVING <search_conditions> ]
[ WITH { CUBE | ROLLUP } ]
]
[ ORDER BY { column_name [ ASC | DESC ] } [,.n] ]
[ COMPUTE
{ { AVG | COUNT | MAX | MIN | SUM } (expression) } [,.n]


[ BY expression [,.n]
]


空值(null values)能使聚集函数创建意想不到的结果。例如,当你执行一个包含函数COUNT的SELECT语句时,如果表中含有18个记录,其中含有两个空值,则结果集将返回16条记录。SQL Server将忽略含有空值的记录。
因此,如果想对包含空值的字段使用聚集函数,需要额外的小心,因为此时你得到的结果集并不能代表数据的真实情况。但如果必须使用聚集函数的话,应注意以下事项:

分享到:
评论

相关推荐

    sql语言的高级用法

    综上所述,掌握SQL语言的高级用法,如`TOP n`、聚集函数、`GROUP BY`、子查询和连接查询,对于优化数据库性能、提高数据处理能力至关重要。通过深入理解并灵活运用这些技术,数据库管理员和开发者可以更加高效地管理...

    sql高级进阶

    标签为“SQL”,意味着所有知识点围绕SQL语言的高级应用和技巧。 在【部分内容】中,提供了一系列具体的SQL高级应用主题,以下是基于这些主题的详细知识点: 1. 单表查询 - 查询表中所有的行与列:使用SELECT * ...

    SQL2005高级教程

    学习者需要掌握SELECT、INSERT、UPDATE、DELETE等基本语句,以及子查询、联接、聚合函数等高级用法。 2. **索引与查询优化**:索引是提升查询性能的关键,包括聚集索引、非聚集索引、唯一索引、全文索引等。理解...

    SQL实验:使用分组,排序和聚合函数以及连接查询

    本次实验旨在帮助学生通过实践加深对SQL语言的理解,特别是关于分组、排序、聚合函数以及连接查询等关键概念的应用。具体包括: 1. **掌握通配符的用法**:通配符在SQL中用于模糊匹配字符串,如`%`和`_`。 2. **...

    SQL语言SQL语言

    SQL(Structured Query Language)是一种标准...总之,SQL语言是数据库管理的核心工具,其强大的功能涵盖了数据的增、删、改、查以及复杂的分析操作。通过掌握SQL,你可以高效地与数据库交互,处理各种复杂的数据需求。

    SQL_SERVER应用与开发范例宝典_12357672.part2

    内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组统计、使用子查询、多表查询、高级查询、插入数据、更新和删除数据、创建、操纵数据库和表、使用视图...

    SQL应用开发范例宝典:SQL应用开发范例宝典.iso (源码光盘)

    内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组统计、使用子查询、多表查询、高级查询、插入数据、更新和删除数据、创建、操纵数据库和表、使用视图...

    SQL Server高级开发与专业应用

    《SQL Server高级开发与专业应用》是一本专为IT专业人士设计的深度学习SQL Server的教材。这本书涵盖了SQL Server的各种高级特性和专业应用,旨在提升读者在数据库管理、开发和优化方面的技能。 首先,我们来探讨...

    Microsoft SQL Server 2008 技术内幕:T-SQL语言基础

    《Microsoft SQL Server 2008 技术内幕:T-SQL语言基础》是一本深入探讨SQL Server 2008中T-SQL语言的专著。T-SQL(Transact-SQL)是Microsoft SQL Server的扩展SQL语言,用于执行数据库查询、数据更新、存储过程和...

    SQL_SERVER应用与开发范例宝典_12357672.part3

    内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组统计、使用子查询、多表查询、高级查询、插入数据、更新和删除数据、创建、操纵数据库和表、使用视图...

    SQL_SERVER应用与开发范例宝典_12357672.part1

    内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组统计、使用子查询、多表查询、高级查询、插入数据、更新和删除数据、创建、操纵数据库和表、使用视图...

    SQL Server 2000 高级编程技术(PDG).rar

    1. **T-SQL编程**:T-SQL(Transact-SQL)是SQL Server的扩展语法,是编写存储过程、触发器、函数等数据库对象的主要语言。掌握T-SQL的高级特性,如动态SQL、递归查询、游标、事务控制等,对于提升数据库的灵活性和...

    SQLServer2000高级编程技术.pdf.rar

    《SQLServer2000高级编程技术》这本书深入探讨了SQL Server 2000这一经典数据库管理系统中的高级编程技术。SQL Server 2000是微软公司推出的数据库平台,虽然现在已经有一些老旧,但其在许多企业中仍然占据着重要的...

    SQL Server数据库设计和高级查询(1-3).rar

    进入SQL Server数据库的高级查询部分,我们需要掌握T-SQL(Transact-SQL)语言,它是SQL Server的扩展,提供了更多的数据库管理功能。以下是一些关键概念和语法: 1. **子查询**:在主查询中嵌套其他查询,用于获取...

    数据库原理与SQL Server2005应用教程

    2. 功能特性:支持T-SQL语言进行查询和编程,提供安全性、备份恢复、性能监控等功能。SQL Server 2005引入了新的数据类型、存储过程、触发器等。 3. SSMS(SQL Server Management Studio):是SQL Server的主要管理...

    SQLite数据库高级应用

    SQLite支持标准的SQL语言,并且提供了一系列的功能和特性,使得它能够在不同的应用场景中发挥作用。本文将介绍SQLite的高级应用,包括函数和聚合、数据分组、过滤、联接表、触发器以及索引等知识点。 首先,我们从...

    Sql Server 高级教程(全16课ppt)

    二、T-SQL语言深化 T-SQL(Transact-SQL)是SQL Server中的扩展SQL语法,用于数据查询、插入、更新和删除。进阶学习包括存储过程、触发器、函数(内置和自定义)以及复杂的查询结构,如联接、子查询和窗口函数。 三...

    MS.SQL.Server.2008.技术内幕:T-SQL.查询.rar

    查询》,读者可以掌握T-SQL的高级技巧,提升SQL Server 2008数据库的管理和应用能力,从而更好地设计、优化和维护数据库系统。这本书的PDF文件包含了所有这些内容的详细讲解,对于SQL Server 2008的开发者和管理员来...

Global site tag (gtag.js) - Google Analytics