haihongyuan.com
海量文库 文档专家
全站搜索:
您现在的位置:首页 > 幼儿教育 > 幼儿读物幼儿读物

SQL排序分组小测三

发布时间:2013-10-04 10:58:10  

SQL小测三

写出下面SQL语句

1、.找出所有课程中最高cj(成绩)排在前20%的记录。XS.DBF有(kch字段 cj字段)

2、.统计各门课程的考试人数。(xj表)

3、.统计出至少有两个人是同- jg(籍贯)的各籍贯人数。(xj表)

4.查找出所有学员的xm、kch及cj,并按xh升序、cj降序排列的(xj表)

5、.按xf降序,检索出所有课程信息,(xj表)

6、找出cj最低的前3名学生信息(xj表)

7、统计出每个人的最高分、最低分、平均分(xj表中有xh字段,cj字段)

8、

9、

10、

一、排序 ORDER BY

在SQL语句中使用ORDER BY 短语对查询结果排序,并可以用ASC指出按升序排序(默认),用DESC指出按降序排序,可以按一列或多列排序。

单项排序:SELECT * FROM 仓库 ORDER BY 面积 (默认升序)

SELECT * FROM 职工 ORDER BY 工资 DESC (降序)

多项排序:SELECT * FROM 职工 ORDER BY 工资,仓库号 DESC(先按工资升序,再按仓库号降序)

SELECT * FROM 职工 ORDER BY仓库号 DESC, 工资,职工号

二、分组 GROUP BY (每个、 各组 、按、以。。为单位)

利用GROUP BY 子句进行分组计算查询使用得非常广泛。可以按一列或多列分组,还可以用HAVING进一步限定分组的条件。

①求每个仓库的职工信息

SELECT * FROM 职工 GROUP BY 仓库号

注意:分组后各组取最后一条结果

②求每个仓库的职工的平均工资

SELECT 仓库号,AVG(工资) FROM 职工 GROUP BY 仓库号

注意:按照什么字段分组,结果中要有分组的字段。

③GROUP BY 子句与WHERE子句的先后顺序

SELECT * FROM 职工 WHERE 仓库号=”WH1” GROUP BY 仓库号

注意:GROUP BY 子句一般跟在WHERE子句之后,没有WHERE子句时跟在FROM之后。 在分组查询时,有时要求分组满足某个条件时才检索,这时可以用HAVING子句来限定分组。

④求至少有两个职工的每个仓库的平均工资。(对分组进行限定用HAVING子句)

SELECT 仓库号,AVG(工资) FROM 职工 GROUP BY 仓库号 HAVING COUNT(职工号)>=2

注意:对分组进行进一步限定用HAVING子句,HAVING字句总是跟着GROUP BY子句之后,不可以单独使用。HAVING子句和WHERE 子句不矛盾,在查询中先用WHERE,再用GROUP BY,最后用HAVING

⑤分组GROUP BY与排序ORDER BY的顺序

SELECT * FROM 职工 GROUP BY 仓库号 ORDER BY 工资 DESC

注意:先分组后排序

⑥虚字段的用法: 检索每个仓库中的平均工资,并且按平均工资降序排列

方法一:SELECT 仓库号,AVG(工资) FROM 职工 GROUP BY 仓库号 ORDER BY 2 方法二:SELECT 仓库号,AVG(工资) AS 平均工资FROM 职工 GROUP BY 仓库号 ORDER BY 平均工资

注意:函数不能用来直接排序、分组或比较,必须用虚字段,2表示结果中第二个字段,AS虚字段后查询结果中会出现平均工资这个字段,因此可以识别。

网站首页网站地图 站长统计
All rights reserved Powered by 海文库
copyright ©right 2010-2011。
文档资料库内容来自网络,如有侵犯请联系客服。zhit326@126.com