SQL点滴:分组查询并转出新表
Posted fffywfn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL点滴:分组查询并转出新表相关的知识,希望对你有一定的参考价值。
注:1.在select语句中被分组的列作为参数,不能select a,b,c,d,e,f,i from A group by a,这时会跳出错误“试图执行的查询中不包含作为聚合函数一部分的特定表达式‘b’”。
2. 查询结果想要另存一张表,可以用语句into,例如:
select a,sum(b) as 总和,count(b) as 计数
into 总体情况表
group by a
实现了分组查询并另存一张表的目的。
一.分组查询
1.使用group by进行分组查询
在使用group by关键字时,在select列表中可以指定的项目是有限制的,select语句中仅许以下几项:
〉被分组的列
〉为每个分组返回一个值得表达式,例如用一个列名作为参数的聚合函数
group by的使用在这只写几个例子吧:
例:
select courseID,avg(score) as 课程平均成绩
from score
group by courseID
例:
select studentID as 学员编号,courseID as 内部测试,avg(score) as 内部测试平均成绩
from score
group by studentID,courseID
2.使用having子句进行分组筛选
where子句只能对没有分组统计前的数据行进行筛选,对分组后的条件的筛选必须使用having子句
例:
select studentID as 学员编号,courseID as 内部测试,avg(score) as 内部测试平均成绩
from score
group by studentID,courseID
having avg(score)>60
在select语句中,where、group by、having子句和统计函数的执行次序如下:
where子句从数据源中去掉不符合去搜索条件的数据;group by子句搜集数据行到各个组中,统计函数为各个组计算统计值;having子句去掉不符合其组搜索条件的各组数据行 。
以上是关于SQL点滴:分组查询并转出新表的主要内容,如果未能解决你的问题,请参考以下文章