文档详情

SQL数据操纵语句.ppt

发布:2017-02-16约1.99万字共92页下载文档
文本预览下载声明
* 参考: 示例1返回表 orderhist 中的订购信息。此查询按照每个产品的产品标识进行分组并计算订购的总数量。在结果集中,每个产品的订购总数量将用聚合函数 SUM 计算并显示出来; 示例2比示例1中的查询多了一个 WHERE 子句。这个查询将只对产品标识为2的产品进行分组并计算总订购数量。 * 参考: 示例1列出了表 orderhist 中的所有记录,并为订购的所有产品生成一个汇总值; 示例2列出了表 orderhist 中的所有行,为每一种订购的产品生成一个汇总值,也将为所有订购的产品生成一个汇总值。 * 参考: 示例1列出了表 orderhist 中的所有记录,并为订购的所有产品生成一个汇总值; 示例2列出了表 orderhist 中的所有行,为每一种订购的产品生成一个汇总值,也将为所有订购的产品生成一个汇总值。 * 4.6.1 使用聚合函数 SQL Server提供了许多聚合函数,主要有: 聚合函数 描述 AVG(列名) 计算给定列的平均值 COUNT (列名) 计算表达式中值的数目 COUNT (*) 计算所选择的行的数目 MAX (列名) 计算给定列的中的最大值 MIN (列名) 计算给定列的中最小值 SUM (列名) 计算给定列的中所有值的和 * 4.6.1 使用聚合函数 字段的数据类型决定了可以用在该字段上的聚合函数类型。 如:SUM 和 AVG 只能用在数据类型代表数字的字段上。 * 4.6.1 使用聚合函数 [示范案例25] 在“Northwind”数据库中查询“employees”表中雇员的数目 。 程序清单如下: SELECT count(*) AS 雇员数目 FROM employees * 4.6.1 使用聚合函数 实验并思考: 1) 如果本例中将count(*)更改为count(employeeid),其显示的个数为多少? 2) 如果改为count(city)呢?结果又如何呢?? * 4.6.1 使用聚合函数 对包含空值的字段使用聚合函数时,应注意 SQL Server 的聚合函数(COUNT(*) 除外)将忽略字段中的空值。 COUNT(*)将计算所有的行,即使每个字段都含有空值。 * 4.6.2 对结果进行分组 GROUP BY子句将查询结果集按某一列或多列值分组,分组列的值相等的为一组,并对每一组进行统计计算。对查询结果集分组的目的是为了细化聚合函数的作用对象。 GROUP BY子句的语法格式为: GROUP BY [ALL] 列名[,列名] … [WITH {CUBE|ROLLUP}] [HAVING 筛选条件表达式] * 4.6.2 对结果进行分组 语法注释: ALL:用于指定包含所有组和结果集 。 BY 列名:是按列名指定的字段进行分组 。 使用WITH CUBE会对GROUP BY所列出的所有分组字段进行汇总运算 。 使用WITH ROLLUP会对GROUP BY所列出的第一个分组字段进行汇总运算 。 HAVING筛选条件表达式:表示对生成的组筛选后再对满足条件的组进行统计 。 * USE northwind SELECT productid, orderid ,quantity FROM [order details] GO productid orderid quantity 1 1 5 1 1 10 2 1 10 2 2 25 3 1 15 3 2 30 productid total_quantity 2 35 只对满足 WHERE 子句的行分组 productid total_quantity 1 15 2 35 3 45 USE northwind SELECT productid ,SUM(quantity) AS total_quantity FROM [order details] GROUP BY productid GO 示例 1 USE northwind SELECT productid ,SUM(quantity) AS total_quantity FROM [order details] WHERE productid = 2 GROUP BY productid GO 示例 2 4.6.2 对结果进行分组 * 4.6.2 对结果进行分组 [示范案例26] 统计“northwind”数据库“orders”表中每个城市的订单总数 。 程序清单如下: SELECT shipcity,count(orderid) AS 订单总数 FROM orders GROUP BY shipcity * 4.
显示全部
相似文档