sqlserver2005分组统计与多表关联查询.ppt

sqlserver2005分组统计与多表关联查询.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第五章分组统计与多表关联查询

回顾编写SQL语句查询一个月前的订单信息。查询作者表中姓名以“李”开头的作者信息。查询前20%的图书信息。

预习检查什么是分组统计?多表联接查询分为哪几种,为什么要使用多表联接查询?提问

本章任务使用使用T-SQL语句对Authors和Books表进汇总统计。对多表进行关联查询。

本章目标掌握聚合函数的使用。掌握GroupBy进行分组统计。掌握多表联接查询

聚合函数会员表中存储了所有会员的积分,如果想计算出会员的最高分、平均积分、积分大于300的会员个数,怎么办?会员表Customers使用聚合函数

聚合函数-SUM、AVG、MAX、MINSELECTSUM(Upoint)as总积分FROMCustomers1、SUMSELECTAVG(upoint)as平均积分FROMCustomers2、AVGSELECTMAX(upoint)as最高积分,MAX(upoint)as最低积分FROMCustomers3、MAX和MIN

聚合函数-COUNTSELECTCOUNT(*)as人数FROMCustomersWHEREupoint3004、COUNT(表达式)返回结果集的非空行数。SELECTMAX(Birthday)as最大日期FROMCustomersMAX和MIN除了计算数值列,还可以用于计算字符型以及日期时间类型数据列其中“表达式”可以是“*”,“列名”。(1)COUNT(*):返回表中所有数据行的记录数。(2)COUNT(列名):返回指定列非空值个数。示例SELECTCOUNT(Address)as个数FROMCustomers

聚合函数如果想统计居住在不同城市的人员个数,编写下面代码正确吗?SELECTCityas居住城市,Count(*)as人数FROMCustomers执行出现错误解决这样的问题需要使用GROUPBY分组统计

什么是分组统计一家水果店的一天销售情况,要统计各类水果的销售额。示例SELECT水果,SUM(金额)FROM水果销售记录表GroupBy水果按水果的种类分组,然后分别汇总

分组统计分组统计牢记:SELECT语句中除聚合函数外所有列,应写在GroupBy语句后面,否则将出现错误。语法SELECT字段列表[聚合函数]FROM表[WHERE]条件GROUPBY字段列表其中字段列表可以有多个字段,各字段用逗号隔开,它表示按哪些列进行分组。

分组统计应用SELECTCityas居住城市,Count(*)as人数FROMCustomersGroupByCity统计会员表中居住在不同城市的人员个数?提问分析应该按照City列进行分组分组后使用Count()聚合函数汇总行数。统计结果

多列分组统计统计不同城市不同性别的会员个数?提问SELECTCityas城市,Sexas性别,Count(*)as人数FROMCustomersGroupByCity,Sex分析统计结果集应包含“城市、性别和人数3列信息”。很明显应该按照City和Sex两列进行分组。分组后仍使用Count()聚合函数汇总行数。统计结果

多列分组统计如果代码写成这样,结果会怎样?所以牢记:SELECT语句中除聚合函数外所有列,应写在GroupBy语句后面。SELECTCityas城市,Sexas性别,Count(*)as人数FROMCustomersGroupByCity执行错误,Sex

使用HAVING子句对分组结果再次过滤继续考虑上面的查询,如果“要统计不同城市不同性别的会员个数,并且只显示会员个数大于2个的记录”如何处理呢?需要对分组后的数据进行筛选,筛选条件Count(*)=2。对分组后的数据进行筛选需要使用Having子句。SELECTCityas居住城市,Sexas性别,Count(*)as会员人数FROMCustomersGroupByCity,SexHAVINGCount(*)=2统计结果:

使用HAVING子句对分组结果再次过滤WHERE子句:从数据源中去掉不符合其搜索条件的数据GROUPBY子句:搜集数据行到各个组中,统计函数为各个组计算统计值HAVING子句:去掉不符合其组搜索条件的各组数据行WHEREGROUPBYHAVING

小节如下表A。查询各学生的平均成绩,并显示学生成绩出现2次以上的信息。ClassStudentN

文档评论(0)

djawdsx + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档