两张表之间进行数据库查询时的聚合函数用法

注意:表中内容中文显示时有乱码现象,我都用Hello World代替!

comment(评论表)】:

                

Bookiduseridcommentstar
ts000011Hello World4
ts000012Hello World6
ts000015Hello My Java9
ts0000211234
ts0000221234
ts000032Hello World4
ts000042Hello World4
ts000051Hello World4
ts000062Hello World4
ts000071Hello World4
ts000082Hello World4
ts000091Hello World4
ts000102Hello World4
ts000112safdsa4
ts000121sdfasd4

Books(图书表)】:

bookidnameauthorintroducepublisherpublicationtimeinventoryimagesistopcategorycodeisbn
ts00001C#Joe MayoHello WorldHello World1900-01-01 00:00:00.0005../img/books/ts00001.jpgTrueTP312 51012312312312
ts00002SQL Server[]Solid Quality LearningHello WorldHello World2007-02-01 00:00:00.0005../img/books/ts00002.jpgTrueTP312 8409787302163305
ts00003ASP.NET2.0[]Chris Hart John KauffmanHello FunsHello World1900-01-01 00:00:00.0001../img/books/ts00003.jpgTrueTP312 830978730223305
ts00004CHello WorldHello WorldHello World2010-06-01 00:00:00.0007../img/books/ts00004.jpgTrueTP312 6309787302224464
ts00005C++ PrimerHello WorldStanleyHello WorldHello World2006-03-01 00:00:00.0005../img/books/ts00005.jpgTrueTP312 8209787115145543
ts00006Java[]Bruce EckelHello WorldHello World2008-12-01 00:00:00.0006../img/books/ts00006.jpgTrueTP312 5109787111256113
ts00007Hello WorldHello WorldHello WorldHello World2007-12-01 00:00:00.0005../img/books/ts00007.jpgTrueTP312 1309787302162063
ts00008Hello WorldHello WorldHello WorldHello World2010-01-01 00:00:00.0005../img/books/ts00008.jpgTrueTP312 2209787115216878
ts00009Hello WorldHello WorldHello WorldHello World2004-02-01 00:00:00.0004../img/books/ts00009.jpgTrueTP312 1109787111135104
ts00010Hello WorldHello WorldHello WorldHello World2011-01-01 00:00:00.0004../img/books/ts00010.jpgTrueTP312 1509787111321330
ts00011Hello WorldHello WorldHello WorldHello World2009-08-01 00:00:00.0003../img/books/ts00001.jpgTrueTP312 5009787810821698
ts00012PowerPointHello WorldPowerPoint 2007Hello WorldHello World2009-03-01 00:00:00.0005../img/books/ts00011.jpgTrueTP312 4309787122046901

问题是】现在我要查询两张表中comment中(bookid,name,author,introduce images)和books中(star)并且star要返回平均值,最后结果按bookid,name,author,introduce,images分组!

查询语法】:

select top 12 c.bookid,left(b.name,10) as name,left(b.author,10) as author,left(b.introduce,40) as introduce,b.images,avg(c.star) as star from Books b inner join comment c on b.bookid=c.bookid group by c.bookid,name,author,introduce,images having avg(c.star)>=4

结果为】:

bookidnameauthorintroduceimagesstar
ts00001C#Joe MayoHello World../img/books/ts00001.jpg6
ts00002SQL Server[美]Solid Q《SQLServer2005实现与维护(附光盘MCTS教程)》是微软认证技术专家../img/books/ts00002.jpg4
ts00003ASP.NET2.0[美]Chris HHello Funs../img/books/ts00003.jpg4
ts00004C程序设计(第四版)谭浩强 著由谭浩强教授著、清华大学出版社出版的《C程序设计》是一本公认的学习C语言程序设计../img/books/ts00004.jpg4
ts00005C++ Primer:(美)Stanle作为目前业界广泛使用的编程语言,C++可谓包罗万象、博大精深。20年来,讲述C+../img/books/ts00005.jpg4
ts00006Java编程思想[美]Bruce E本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文../img/books/ts00006.jpg4
ts00007大话设计模式程杰本书通篇都是以情景对话的形式,用多个小故事或编程示例来组织讲解GoF(设计模式的../img/books/ts00007.jpg4
ts00008代码整洁之道(美)马丁作者Martin是软件工程领域的大师级人物,是《敏捷软件开发:原则、模式与实践》../img/books/ts00008.jpg4
ts00009计算机程序的构造和解:[美]艾伯森这一版本中强调了几个新问题,其中最重要的是有关的不同的途径中,计算模型里对于时间../img/books/ts00009.jpg4
ts00010深入理解计算机系统((美)布莱恩特,奥哈本书从程序员的视角详细阐述计算机系统的本质概念,并展示这些概念如何实实在在地影响../img/books/ts00010.jpg4
ts00011单片机原理与实用技术付晓光本书以人们对新知识的认识过程为顺序,从分析单片机的应用实例出发,以MCS-51系../img/books/ts00001.jpg4
ts00012PowerPoint墨思客工作室PowerPoint 2007是Microsoft公司推出的Office 200../img/books/ts00011.jpg4

 

 【总结:】

1、select 子句只能包含集合函数和出现在Group by子句中的分组列

2、集合函数只能应用于select子句和Having子句

3、使用Having子句之前必须使用Group by子句对数据行分组

4、Having子句中的条件表达式必须使用集合函数来构造

 【关键点】:

千万不要在group by 子句中加star,因为加了以后,查询就不会返回平均值,而是返回分组,千万注意!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值