如何用sql语句实现成绩求平均分、名次
有一个数据表,格式如下:
班级 姓名 科目 成绩
(1)班 小明 语文 85
(1)班 小明 数学 90
(1)班 小兰 语文 83
(1)班 小兰 数学 95
(1)班 小欢 语文 86
(1)班 小欢 数学 91
(2)班 小花 语文 87
(2)班 小花 数学 89
现在要求如下
1. 用sql语句求出(1)班的各个学生的成绩的平均分
2. 用sql语句求出(1)班的平均前2名分别是谁
3. 用sql语句判断(1)班的单科成绩都大于85分的是谁
SQL code:
select 姓名,avg(成绩) as 平均分 from tb
where 班级='1班' group by 姓名;
select top 2 姓名,avg(成绩) as 平均分 from tb
where 班级 = '1班'
group by 姓名
order by avg(成绩) desc;
select 姓名 from tb
where 班级 = '1班'
group by 姓名
having count(case when 成绩 > 85 then 1 end) = count(*);
小梁的OK
如果数据表加多一个英语成绩,变成有三个成绩,改为:
有一个数据表,格式如下:
班级 姓名 科目 成
相关问答:
小弟是个新手 现在有个问题一直不能解决
例如
procedure produce_proc
@p001 nvarchar(8000),
@p002 nvarchar(8000),
@p003 nvarchar(8000),
& ......
sql2005
select *from v_ddxx where d_sfsc='0' and (g_ssbm='1001' or g_ssbm='1002') and (xxf>0 and xxfwzf <>0 ),执行速度慢的要死,但是如果把(xxf>0 and ......
PB中开发的。
DateTime startTime=DateTime(em_1.Text)
DateTime endTime=DateTime(em_2.Text)
string sql
sql = dw_1.GetSQLSelect()+"Where (StartTime> '"+startTime+&q ......
DateTime startTime=DateTime(em_1.Text)
DateTime endTime=DateTime(em_2.Text)
string sql
sql = dw_1.GetSQLSelect()+"Where (StartTime> '"+startTime+"') and (EndTime ......
sql可以有两个以上的触发器吗??我指的是for触发器,那其他的呢??
什么意思?
可以的
10个都没问题
可是我写了两个for insert 触发器,造成进程阻塞了呢?怎么办呢?请高人指点
......