数据库group by 例题

 

对于每个学生,求学生的选课门数和平均成绩,并把结果存入学生选课数据库中。

(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

注:俩种黄色表达形式,效果都一样。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值