SQL不明白 - MS-SQL Server / 应用实例
查询学生平均成绩及其名次
SELECT 1+(SELECT COUNT( distinct 平均成绩)
from (SELECT S#,AVG(score) AS 平均成绩
from SC
GROUP BY S#
) AS T1
WHERE 平均成绩 > T2.平均成绩) as 名次,
S# as 学生学号,平均成绩
from (SELECT S#,AVG(score) 平均成绩
from SC
GROUP BY S#
) AS T2
ORDER BY 平均成绩 desc;
语句不是很理解啊。帮下我吧
语言不太好表达,帮顶吧
SQL code:
--计算均分
SELECT S#,AVG(score) 平均成绩
from SC
GROUP BY S#
--按照学号计算平均分,并取得高于均分的同学的个数
SELECT COUNT( distinct 平均成绩)
from (SELECT S#,AVG(score) AS 平均成绩
from SC
GROUP BY S#
) AS T1
WHERE 平均成绩 > T2.平均成绩
--不过不知道为何+1?
SQL code:
--哦,这样一目了然了,其实你就是在给学生排名次。
create view view_acg_scor as select s# 学号,avg(score) 平均成绩 from SC group by s#
SELECT 1+(SELECT COUNT( distinct 平均成绩)
from view_acg_score AS T1
相关问答:
我一个项目,有个插入操作,具体是这样的:
我有进货信息表。在出货时选择相应的进货信息,输入数量,选择部门后,点保存按钮,由于网络延时,点一下没有反映,于是用户就又点一下,导致一次插入了两条记录:
例:
......
sqlserver2005 建立的数据库,与手持pda传输数据,最近突然出现无法传递数据的问题,pda端提示的错误时outofmemoryexception,但是pda上面的容量没有问题,
sqlserver的日子上的错误如下:
日期 2010-1-25 14:45: ......
字段1,字段2.....字段N,Status,ParentID
1,Name1....test1,1,99
1,Name1....test1,3,99
1,Name2....test2,1,101
1,Name2....test2,3,101
1,Name3....test3,2,101
1,Name1....test1,4,101
想要的结果是:
1,Na ......
我想查询出每天数据的最大的一个值。表的格式如下
表名: hisdata
字段 编号 值 状态 时间
Id value state dattime
101 32.3 0 ......
我觉得mysql和sqlserver有共同的地方:
有个问题是关于表的锁问题:
进程A 进程B
select * from user where id in lock share mode(共享锁)
&nb ......