对于每个学生,求学生的选课门数和平均成绩,并把结果存入学生选课数据库中。
(SC表)
(非聚合列sno学号来分组)
use XSXK
go
create table SC2(
sno char(10) primary key,
选课门数 smallint,
平均成绩 smallint)
go
insert into SC2
select sno,
选课门数 = count(*), 平均成绩 = avg(grade)
from SC
group by sno
这里面group by 使用的是非聚合列,而选课门数和平均成绩都是聚合列,因此用sno来分组(顺序)
拓展:
(以非聚合列成绩grade来分组)
use XSXK
create table SC4(
grade int not null primary key,
选课门数 int null,
平均成绩 int
)
insert into SC4
SELECT grade, COUNT(*), AVG(grade)
FROM SC
GROUP BY grade;
delete from SC4
select * from SC4
注:俩种黄色表达形式,效果都一样。