SQL查询-聚集查询概要.ppt

SQL查询-聚集查询概要

例30.统计每张订单订购的商品总数量,列出订单编号和订购数量。 SELECT POno AS 订单编号, SUM(Quantity) AS 订购数量 FROM DetailofPO GROUP BY POno 例31.统计每类商品的品种数量和平均评估价格 SELECT Type 商品种类,COUNT(Pno) 品种数量, AVG(EvaluationPrice) 平均价格 FROM Product GROUP BY Type 2.GROUP BY与WHERE: 对于所属国家为中国的供应商,查询各类资质等级的供应商数量 SELECT QuaGrade,COUNT(*) FROM Vendor WHERE Country=中国 GROUP BY QuaGrade; 聚集查询结果 二者关系:先执行WHERE,再执行GROUP BY。 3.GROUP BY与ORDER BY: 聚集查询结果 说明: 排序字段是某一集合特性 对于所属国家为中国的供应商,查询各类资质等级的供应商数量,按照供应商数量降序排列 SELECT QuaGrade,COUNT(*) FROM Vendor WHERE Country=中国 GROUP BY QuaGrade Order BY COUNT(*) DESC; 4.次级分组:可以有多个分组字段 假设有库存表以及下列一组数据: SELECT 品名, 颜色, sum(数量) 数量 FROM 库存表 GROUP BY 品名, 颜色 执行下面的查询: 分析:查询结果有几行? 说明: 结果行数取决于最细层分组数 聚集函数也是针对最细层分组进行计算 练习:5、查询各个学院男、女生各有多少人。 6.使用HAVING短语对分组作筛选: 例32.查询订购商品总数量在100以上的采购订单编号和订购数量。 SELECT POno AS 订单编号, SUM(Quantity) AS 订购数量 FROM DetailofPO GROUP BY POno HAVING SUM(Quantity) 100 说明: HAVING不能单独使用 HAVING后面的条件表达式与WHERE类似,但一定是对集合特性的限制 练习:6、查询选修人数达到30人的课程的课程号和选课人数。 SELECT Cno,COUNT(*) FROM SC GROUP BY Cno HAVING COUNT(*) =30; ? 内容回顾 使用聚集函数 分组并使用聚集函数 分组并对分组进行筛选 * * * * * * * * * * 查询语句的基本结构可描述为: SELECT 目标列名序列 -- 需要哪些列 FROM 数据源 -- 来自于哪些表 [WHERE 检索条件表达式] -- 根据什么条件 [GROUP BY 分组依据列] [HAVING 组提取条件] [ORDER BY 排序依据列] 分类: 单表查询 聚集查询 连接查询 嵌套查询 集合查询 POno Porganization Pgroup Pdate ZhiDan ShenHe Vno D2012001 采购1组 李明扬 2012-6-1 张兵 刘洋 S-01 D2012002 采购1组 孟明霞 2012-5-1 田心 刘洋 S-02 D2012003 采购2组 李欣 2012-5-30 张兵 刘洋 S-01 D2012004 采购3组 杨光 2012-6-15 张兵 刘洋 S-03 D2012005 采购3组 杨光 2012-6-28 张兵 王刚 S-05 D2012006 采购3组 杨光 2012-7-1 田心 王刚 S-05 D2012007 采购2组 李欣 2012-7-10 田心 刘洋 S-06 D2012008 采购2组 李欣 2012-7-5 田心 王刚 S-04 表7-11 PurchaseOrder表数据 数据查询----聚集查询 查询集合统计特性 一、使用聚集函数 二、使用GROUP BY子句 一、使用聚集函数 主要聚集函数: 计数 COUNT(*):统计元组的个数。 COUNT(列名):统计列值不为空的元组个数。 SUM(列名):计算列值总和(必须是数值型列)。 AVG(列名):计算列值平均值(必须是数值型列)。 MAX(列名):求列值最大值(必须是数值型列或字符型列)。 MIN(列名):求列值最小值(必须是数值型列或字符型列

文档评论(0)

1亿VIP精品文档

相关文档