34,594
社区成员
发帖
与我相关
我的任务
分享
select ada.ada_id 学院id,ada.name 学院名称,count(stu.stu_id) 学生数,sum(stu.score) 学生总成绩 from stu,ada where stu.ada_id=ada.ada_id group by ada.ada_id,ada.name
declare @t table(stu_id int identity(1,1),score int,ada_id int)
insert @t(score,ada_id) select 90,1
union all select 80,1
union all select 64,2
union all select 75,2
union all select 85,2
union all select 54,3
union all select 76,4
union all select 88,4
declare @ada table(ada_id int,[name] varchar(20))
insert @ada select 1,'信息学院'
union all select 2,'管理学院'
union all select 3,'化工学院'
union all select 4,'计算机学院'
select 学院id=b.ada_id,
学院名称=b.[name],
学生数=count(*),
学生总成绩=sum(score)
from @t a join @ada b on a.ada_id=b.ada_id
group by b.ada_id,b.[name]
order by 1
/*
学院id 学院名称 学生数 学生总成绩
----------- -------------------- ----------- -----------
1 信息学院 2 170
2 管理学院 3 224
3 化工学院 1 54
4 计算机学院 2 164
*/
create table stu(stu_id int, score int, ada_id int)
insert into stu values(1, 90 ,1 )
insert into stu values(2, 80 ,1 )
insert into stu values(3, 64 ,2 )
insert into stu values(4, 75 ,2 )
insert into stu values(5, 85 ,2 )
insert into stu values(6, 54 ,3 )
insert into stu values(7, 76 ,4 )
insert into stu values(8, 88 ,4 )
create table ada(ada_id int, name varchar(10))
insert into ada values(1, '信息学院')
insert into ada values(2, '管理学院')
insert into ada values(3, '化工学院')
insert into ada values(4, '计算机学院')
go
select b.ada_id,b.name, isnull(count(*),0) 学生数 , isnull(sum(a.score),0) 学生总成绩
from stu a left join ada b
on a.ada_id = b.ada_id
group by b.ada_id,b.name
order by b.ada_id,b.name
--drop table stu,ada
/*
ada_id name 学生数 学生总成绩
----------- ---------- ----------- -----------
1 信息学院 2 170
2 管理学院 3 224
3 化工学院 1 54
4 计算机学院 2 164
(所影响的行数为 4 行)
*/
create table stu(stu_id int, score int, ada_id int)
insert into stu values(1, 90 ,1 )
insert into stu values(2, 80 ,1 )
insert into stu values(3, 64 ,2 )
insert into stu values(4, 75 ,2 )
insert into stu values(5, 85 ,2 )
insert into stu values(6, 54 ,3 )
insert into stu values(7, 76 ,4 )
insert into stu values(8, 88 ,4 )
create table ada(ada_id int, name varchar(10))
insert into ada values(1, '信息学院')
insert into ada values(2, '管理学院')
insert into ada values(3, '化工学院')
insert into ada values(4, '计算机学院')
go
select b.ada_id,b.name, count(*) 学生数 , sum(a.score) 学生总成绩
from stu a , ada b
where a.ada_id = b.ada_id
group by b.ada_id,b.name
order by b.ada_id,b.name
--drop table stu,ada
/*
ada_id name 学生数 学生总成绩
----------- ---------- ----------- -----------
1 信息学院 2 170
2 管理学院 3 224
3 化工学院 1 54
4 计算机学院 2 164
(所影响的行数为 4 行)
*/
select b.ada_id,b.name, count(*) 学生数 , sum(a.score) 学生总成绩
from stu a , ada b
where a.ada_id = b.ada_id
group by b.ada_id,b.name
select
[学院id]=a.ada_id
,[学院名称]=a.name
,[学生总数]=count_std
,[总成绩]=sum_score
from ada a
join (
select ada_id, sum_score = sum(score), count_std = count(1)
from stu
group by ada_id
) as b on b.ada_id=a.ada_id
select a.ada_id,name,count(1)学生数,sum(score) from ada a left join stu b
on a.ada_id=b.ada_id group by a.ada_id,name
select a.ada_id,name,count(1)学生数,sum(score) from ada a left join stu b
on a.ada_id=b.ada_id group by b.ada_id