SQL_Server2005分组统计与多表关联查询

SQL_Server2005分组统计与多表关联查询

ID:44221248

大小:2.47 MB

页数:32页

时间:2019-10-19

SQL_Server2005分组统计与多表关联查询_第1页
SQL_Server2005分组统计与多表关联查询_第2页
SQL_Server2005分组统计与多表关联查询_第3页
SQL_Server2005分组统计与多表关联查询_第4页
SQL_Server2005分组统计与多表关联查询_第5页
资源描述:

《SQL_Server2005分组统计与多表关联查询》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第五章分组统计与多表关联查询回顾编写SQL语句查询一个月前的订单信息。查询作者表中姓名以“李”开头的作者信息。查询前20%的图书信息。预习检查什么是分组统计?多表联接查询分为哪几种,为什么要使用多表联接查询?提问本章任务使用使用T-SQL语句对Authors和Books表进汇总统计。对多表进行关联查询。本章目标掌握聚合函数的使用。掌握GroupBy进行分组统计。掌握多表联接查询聚合函数会员表中存储了所有会员的积分,如果想计算出会员的最高分、平均积分、积分大于300的会员个数,怎么办?会员表Customers使用聚合

2、函数聚合函数-SUM、AVG、MAX、MINSELECTSUM(Upoint)as总积分FROMCustomers1、SUMSELECTAVG(upoint)as平均积分FROMCustomers2、AVGSELECTMAX(upoint)as最高积分,MAX(upoint)as最低积分FROMCustomers3、MAX和MIN聚合函数-COUNTSELECTCOUNT(*)as人数FROMCustomersWHEREupoint>3004、COUNT(表达式)返回结果集的非空行数。SELECTMAX(Birth

3、day)as最大日期FROMCustomersMAX和MIN除了计算数值列,还可以用于计算字符型以及日期时间类型数据列其中“表达式”可以是“*”,“列名”。(1)COUNT(*):返回表中所有数据行的记录数。(2)COUNT(列名):返回指定列非空值个数。示例SELECTCOUNT(Address)as个数FROMCustomers聚合函数如果想统计居住在不同城市的人员个数,编写下面代码正确吗?SELECTCityas居住城市,Count(*)as人数FROMCustomers执行出现错误解决这样的问题需要使用GR

4、OUPBY分组统计什么是分组统计一家水果店的一天销售情况,要统计各类水果的销售额。示例SELECT水果,SUM(金额)FROM水果销售记录表GroupBy水果按水果的种类分组,然后分别汇总分组统计分组统计牢记:SELECT语句中除聚合函数外所有列,应写在GroupBy语句后面,否则将出现错误。语法SELECT<字段列表>[聚合函数]FROM表[WHERE]条件GROUPBY<字段列表>其中<字段列表>可以有多个字段,各字段用逗号隔开,它表示按哪些列进行分组。分组统计应用SELECTCityas居住城市,Count(

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

6、码写成这样,结果会怎样?所以牢记:SELECT语句中除聚合函数外所有列,应写在GroupBy语句后面。SELECTCityas城市,Sexas性别,Count(*)as人数FROMCustomersGroupByCity执行错误,Sex使用HAVING子句对分组结果再次过滤继续考虑上面的查询,如果“要统计不同城市不同性别的会员个数,并且只显示会员个数大于2个的记录”如何处理呢?需要对分组后的数据进行筛选,筛选条件Count(*)>=2。对分组后的数据进行筛选需要使用Having子句。SELECTCityas居住城市

7、,Sexas性别,Count(*)as会员人数FROMCustomersGroupByCity,SexHAVINGCount(*)>=2统计结果:使用HAVING子句对分组结果再次过滤WHERE子句:从数据源中去掉不符合其搜索条件的数据GROUPBY子句:搜集数据行到各个组中,统计函数为各个组计算统计值HAVING子句:去掉不符合其组搜索条件的各组数据行WHEREGROUPBYHAVING小节如下表A。查询各学生的平均成绩,并显示学生成绩出现2次以上的信息。ClassStudentNameScoreS1161张良宝

8、80S1161刘宇100S1161张良宝60S1161刘宇60S1161严琴80S1162杨超40S1162张立华100S1162陈磊80S1162张伟60S1162杨超60S1162张立华80S1162陈磊80S1162张伟40提问SELECTStudentNameas学生姓名,AVG(Score)as平均成绩FROMAGROUPByStudentName

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。