赞
踩
提示:本篇文章是在上篇文章的基础上进行单表数据查询操作的补充,主要以例题的方式呈现.
select cno 课程号,COUNT(cno) 选课人数 from sc group by cno
select ssex 性别,AVG(sage) 平均年龄 from student group by ssex
select sno,AVG(grade) 平均分 from sc group by sno having MIN(grade)>=85
select sdept 院系,AVG(sage) 平均年龄 from student group by sdept having AVG(sage)>18
select * from sc WHERE cno='2101' ORDER BY grade DESC
select * INTO scl from sc WHERE cno='2101'
select * from student
order by sage
COMPUTE COUNT(sno),AVG(sage)
select * from student
order by sage
COMPUTE COUNT(sno) ,AVG(sage)BY sage
(1)分组查询——group by
select
聚合函数,
列(要求出现在group by的后面)
from
表
where
筛选条件
group by
分组的列表
order by
子句
注意:除了出现在group by后面的字段,如果要在select后查询其他字段,必须用聚合函数进行聚合.
特点:
分组查询中的筛选条件分为两类:
分组前筛选: 数据源是原始表,用where,放在group by前面,因为在分组前筛选
分组后筛选:数据源是分组后的结果集 ,用having,放在group by后面,因为在分组后进行筛选。
✨用group by 的select字句中,只能选择集合函数和出现在group by字句中的分组列。
✨但对组用 having 进行筛选时,having字句使用的集合函数表达式包含的列可以不包含在select字句的选择列中。
select bookID,sum(quentity) as 销售册数
from book
group by bookid
(2).排序——order by
select
…
from
…
where
…
order by
字段名
当我们查询出结果后,根据结果集中的某个字段进行排序,order by 字段名 排序方式(升序/降序)
order by默认采用升序(asc,如果存在 where 子句,那么 order by 必须放到 where 询句后面。
(3)INTO子句 功能是将查询结果保存到新的基表中
根据选择列表中的列和 WHERE 子句选择的行,指定要创建的新表名。 new_table 的格式通过对选择列表中的表达式进行取值来确定。 new_table 中的列按选择列表指定的顺序创建。 new_table 中的每列与选择列表中的相应表达式具有相同的名称、数据类型和值
(4)COMPUTE子句
compute 比 group by 更高级,group by 可以查看某一类的函数计算;而compute不光能实现这个效果,还可以显示出每一类的每一条数据。
select *
from book
compute sum(quentity)
今天的内容分享就到这里啦,如果对友友们有帮助的话记得点赞收藏博客,关注后续的SQL Sever学习内容哦~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。