有一张表码值 学号 成绩
1 1 90
2 2 40
3 1 20
4 3 60
5 1 5
希望求出各个学号的总分和 有多少次成绩大于60分希望得到的表格
学号 总成绩 次数
1 115 1
2 40 0
3 60 1用group by 能弄出总成绩,可次数不会弄
跪求解决,希望有代码。
1 1 90
2 2 40
3 1 20
4 3 60
5 1 5
希望求出各个学号的总分和 有多少次成绩大于60分希望得到的表格
学号 总成绩 次数
1 115 1
2 40 0
3 60 1用group by 能弄出总成绩,可次数不会弄
跪求解决,希望有代码。
解决方案 »
- 如何在每年的最后一天和每个2月的最后一天执行一个存储过程
- 我减少了表的连接后,为什么速度还慢了下了??
- 如何用sql语句将一个表中的一条数据插入一个已经存在的表中(急)
- 3.854700855000000e+003
- sql6.5中显示DateTime字段有的机器上是2005 2 1有的是 2005 二月 1?
- SQL 搜索字段内容有某个字符自动换行写法??
- 有关综合统计的查询,求指教
- 如何实现类似于sum的累加型的自定义函数
- sql 语句的执行速速
- 高分求一个SQL语句
- 能否在一条sql语句中,增删改的同时,还能获取所操作的行的ID(主键)
- 关于SQL SERVER 2005往ORACLE 9I中导入数据的问题
select 学号 ,
sum(成绩) 总成绩,
sum(case when 成绩 >= 60 then1 else 0 end) 次数
from tb
group by 学号
insert into tb values(1 ,1 ,90)
insert into tb values(2 ,2 ,40)
insert into tb values(3 ,1 ,20)
insert into tb values(4 ,3 ,60)
insert into tb values(5 ,1 ,5)
goselect 学号 ,
sum(成绩) 总成绩,
sum(case when 成绩 >= 60 then 1 else 0 end) 次数
from tb
group by 学号drop table tb/*
学号 总成绩 次数
----------- ----------- -----------
1 115 1
2 40 0
3 60 1(所影响的行数为 3 行)
*/
drop table tb
go
create table tb (码值 int,学号 int, 成绩 int)
insert into tb
select 1,1,90 union all
select 2,2,40 union all
select 3,1,20 union all
select 4,3,60 union all
select 5,1,5
-- 希望求出各个学号的总分和 有多少次成绩大于60分--希望得到的表格
--学号 总成绩 次数
--1 115 1
--2 40 0
--3 60 1
select 学号,SUM(成绩) as 总成绩 ,sum(case when 成绩>60 then 1 else 0 end )as 次数 from tb group by 学号(5 行受影响)学号 总成绩 次数
----------- ----------- -----------
1 115 1
2 40 0
3 60 0(3 行受影响)
sum(成绩) 总成绩,
sum(case when 成绩 >=60 then 1 else 0 end )次数
from tb
group by 学号