表结构
teacherID
score
两个字段
teacherID score
1 60
1 70
1 802 60
2 80
2 60一个teacherID可能有30-40条记录可能更多,现在只要前面20条记录然后计算平均分
这个SQL该如何写,谢谢
teacherID
score
两个字段
teacherID score
1 60
1 70
1 802 60
2 80
2 60一个teacherID可能有30-40条记录可能更多,现在只要前面20条记录然后计算平均分
这个SQL该如何写,谢谢
解决方案 »
- 将excel导入成sql出错?
- sql server 2005 安装不了全文索引服务,急,在线
- 关于SQL Server的安装问题
- 字段varchar到nvarchar时,怎么将数据后面的空格去掉?
- 高分请教plsql动态行列转换问题,急,在线等,请高手帮忙看看
- 这个sql语句为什么不能执行???
- 我有一个存储过程,如何能将存储过程的查询结果保存成表,有分赠送
- 请问在MSSQL当中怎么高效的实现全文搜索并分页?
- 执行 'osql -U 用户名 -P 密码 -i c:\***.sql'
- 排序问题~! order by 可是10排在1的后面!
- SqlServer2000这样的作业怎么写
- 如何对数据表内的数据进行复制?
SELECT
A.teacherID,
平均 = (
SELECT AVG(score)
FROM(
SELECT TOP 20
score
FROM 你的表 B
WHERE A.teacherID = B.teacherID
ORDER BY score -- 你的排序, 可以去掉这个, 表示随意的 20 条
)AA)
FROM(
SELECT DISTINCT
teacherID
FROM 你的表
)A
INSERT @TB
SELECT 1, 60 UNION ALL
SELECT 1, 70 UNION ALL
SELECT 1, 80 UNION ALL
SELECT 2, 60 UNION ALL
SELECT 2, 80 UNION ALL
SELECT 2, 60SELECT *,ID=IDENTITY(INT,1,1) INTO # FROM @TBSELECT teacherID,SCORE,ID=ID-(SELECT COUNT(*) FROM @TB WHERE teacherID<A.teacherID) INTO #T FROM # AS A SELECT teacherID,AVG(SCORE) AS SCORE
FROM (
SELECT * FROM #T WHERE ID<=20
) A
GROUP BY teacherIDDROP TABLE #
DROP TABLE #T
/*
teacherID SCORE
----------- -----------
1 70
2 66
*/
INSERT @T SELECT 1 , 60
INSERT @T SELECT 1 , 70
INSERT @T SELECT 1 , 80
INSERT @T SELECT 2 , 60
INSERT @T SELECT 2 , 80
INSERT @T SELECT 2, 60
SELECT teacherID,AVG( score ) FROM (
select * from @T a
where checksum(*) in (select top 20 checksum(*) from @T b where a.teacherID=b.teacherID))T GROUP BY teacherID
/*teacherID
----------- -----------------------------------------------------
1 70.0
2 66.666666666666671
*/
这样应该不对吧,
或者,增加個自增列 ID*/
DECLARE @T TABLE(ID int identity(1,1),teacherID INT, score FLOAT)
INSERT @T SELECT 1 , 60
INSERT @T SELECT 1 , 70
INSERT @T SELECT 1 , 80
INSERT @T SELECT 2 , 60
INSERT @T SELECT 2 , 80
INSERT @T SELECT 2, 60
SELECT teacherID,AVG( score ) FROM (
select * from @T a
where id in (select top 20 id from @T b where a.teacherID=b.teacherID))T GROUP BY teacherID