第三次SQLServer试验解答

 1 --讲解函数: SUM、AVG、COUNT、MAX、MIN 、GETDATE()等
 2 --查询BookInfo表中购进价格最高的图书的信息
 3 --查询BookInfo表中书的平均购进价格
 4 --查询BookInfo表中图书的总数
 5 --讲解Group By、Order By、Top的用法
 6 --分类显示图书信息
 7 --显示1999-12-23 到2005-12-23的罚款
 8 --把BookInfo表中的信息按照购进价格升序排序
 9 --显示BookInfo表中进购价格最高的10个图书的信息
10 --显示BookInfo表中每种图书的平均价格和总金额
11 --显示BookInfo表中平均价格低于20元的图书种类和平均价格
12 /*1、SQL中的常用函数
13    转换函数、日期函数、字符串函数…
14 2、简单查询(可用 ‘*’,可取别名)
15 3、条件查询(and 、or、not…)
16 4、模糊查询(like 和 ‘%’、‘_’结合使
17        用)
18 1、聚合函数的使用
19 2、使用Group by进行分组统计
20 3、使用 Order by 排序
21 4、使用 TOP 选择限定范围内的行
22 Sum(col_name)返回一列值的总和
23 Avg(col_name)返回一列值得平均值
24 count()检查记录数
25 Max(col_name)返回列表中的最大值
26 Min(col_name)返回列表中的最小值
27 例:求学号是‘001’的学生的总成绩
28 Select Sum(fscore) From scoreWhere fcode = ‘001’ 
29 例:求本次VB考试的平均成绩
30 Select Avg(fscore) as ‘VB平均分’
31  From score Where fsubject=‘VB’
32 例:求本次C++考试的最高分
33 Select Max(fscore) From scoreWhere fsubject = ‘C++’
34 例:求有多少学生参加了JAVA考试
35 Select count(fsubject) from score Where fsubject='JAVA' 
36 Select Count(*)from score 返回表的记录数
37 例:求001号学生共参加了几门考试
38 Select count(fsubject) from score Where fcode=‘001’ 
39 例:求JAVA考试的最低分是多少
40 Select min(fscore) from score Where fsubject='JAVA' 
41 group By
42 1. 可以将查询结果表的各行按一列或多列进行分组。
43 2、分组的目的是为了细化聚合函数的作用对象。
44 例:求成绩表中每个学生的平均成绩和总成绩
45 Select  fcode, Avg(fscore) AS 平均值, 
46 Sum(fscore) AS 总成绩
47 From Score 
48 Where fcode<>‘001’Group by fcode
49 Where子句必须位于Group by之前 
50 例:返回成绩表中平均成绩大于60的每个学生的学号和平均成绩
51 Select fcode,Avg(fscore) AS 平均值  
52 From  score 
53 Group by  fcode     
54 Having  Avg(fscore) > 60
55 HAVING子句必须位于Group by之后 
56 例:求成绩表中求学号为‘001’的学生的平均成绩和总成绩
57 Select  fcode, Avg(fscore) AS 平均值, 
58 Sum(fscore) AS 总成绩
59 From Score 
60 Group by fcode
61 Having fcode=‘001’
62 WHERE作用于基本表或视图,从中选择满足条件的记录
63 HAVING作用于结果集,从中选择满足条件的记录
64 默认情况下,指定的字段按升序排列。
65 如要更改顺序,我们可以使用“ASC”(升序)和“DESC”(降序)参数来指定排列顺序。
66 例如:对学生C++语言成绩排榜
67 Select *  From  score
68 Where  fsubject = ‘C++’
69 ORDER BY fscore DESC
70 Distinct可与聚合函数配合使用,以消除重复数据
71 Select distinct fclass as 班级 from Student
72 返回学生表中的前三行的学号、姓名、班级
73 Select Top 3 fcode,fname,fclass 
74 From student
75 返回符合条件的所有学生信息的百分之50
76 Select Top 50 Percent * 
77 From student
78 1、聚合函数的使用
79    (SUM、AVG、MAX、MIN、COUNT)
80 2、使用Group by进行分组统计
81   (Where 和 Having 的使用规则)
82 3、使用 Order by 排序(ASC、DESC)
83 4、使用 TOP 选择限定范围内的行 
84 
85 */

 

 1 --//第三次实验
 2 
 3 --查询BookInfo表中购进价格最高的图书的信息
 4 Select top 1 * from BookInfo 
 5 order by BookPrice desc
 6 
 7 --查询BookInfo表中书的平均购进价格
 8 Select Avg(BookPrice) from BookInfo 
 9 --as '平均购进价格'
10 --查询BookInfo表中图书的总数
11 Select count(*) as '图书的总数'
12 --把BookInfo表中的信息按照购进价格升序排序
13 Select * from BookInfo order by BookPrice asc
14 
15 --显示BookInfo表中进购价格最高的10个图书的信息
16 Select top 10 * from BookInfo 
17 order by BookPrice desc
18 --显示BookInfo表中每种图书的平均价格和总金额
19 Select BookKind,Avg(BookPrice),Sum(BookPrice)
20 from BookInfo
21 group by BookKind 
22 
23 --显示BookInfo表中平均价格低于20元的图书种类和平均价格
24 Select BookKind,Avg(BookPrice)
25 from BookInfo
26 group by BookKind 
27 having Avg(BookPrice)<20

 

posted @ 2014-03-27 12:11  zhangyongjian  阅读(245)  评论(0编辑  收藏  举报