Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL:查找平均分数_Sql_Sql Server 2008_Average - Fatal编程技术网

SQL:查找平均分数

SQL:查找平均分数,sql,sql-server-2008,average,Sql,Sql Server 2008,Average,给定这个表,我正在寻找一个查询来计算给定老师的给定问题的平均分数 如果我想在表中添加另一列,比如SCHOOLID,并希望有一列计算该学校给定问题的平均值,我会怎么做 提前感谢您的帮助 您可以创建一个存储过程来处理整个需求 select teacherId, questionid, AVG(Score) From myTable group by teacherId, questionid CREATE PROCEDURE avarageCalc ( @teacherid nvarchar

给定这个表,我正在寻找一个查询来计算给定老师的给定问题的平均分数

如果我想在表中添加另一列,比如SCHOOLID,并希望有一列计算该学校给定问题的平均值,我会怎么做


提前感谢您的帮助

您可以创建一个存储过程来处理整个需求

select teacherId, questionid, AVG(Score)
From myTable
group by teacherId, questionid
CREATE PROCEDURE avarageCalc
(
   @teacherid nvarchar(5) = null,
   @questionid int = null,
   @schoolid int = null
)
AS
Begin

    SELECT AVG(SCORE) as Avarage 
                   FROM Table 
                   WHERE (TeacherID = @teacherid OR @teacherid IS NULL) AND 
                         (QuestionId = @questionid OR @questionid IS NULL) AND
                         (SchoolId = @schoolid OR @schoolid IS NULL)

END

您可以创建一个存储过程来处理整个需求

CREATE PROCEDURE avarageCalc
(
   @teacherid nvarchar(5) = null,
   @questionid int = null,
   @schoolid int = null
)
AS
Begin

    SELECT AVG(SCORE) as Avarage 
                   FROM Table 
                   WHERE (TeacherID = @teacherid OR @teacherid IS NULL) AND 
                         (QuestionId = @questionid OR @questionid IS NULL) AND
                         (SchoolId = @schoolid OR @schoolid IS NULL)

END
您可以这样做:

SELECT TeacherId, QuestionId, AVG(Score)
FROM TABLE-NAME
GROUP BY TeacherId, QuestionId
以下是一些有帮助的链接:

您可以这样做:

SELECT TeacherId, QuestionId, AVG(Score)
FROM TABLE-NAME
GROUP BY TeacherId, QuestionId
以下是一些有帮助的链接:


知道了!我觉得这很简单。请将其插入表中,我可以运行如下更新语句:update TEST set AVGSCORE\u TEACHER=x.测试中的分数t join选择TEACHERID,questionid,score=AVGSCORE from TEST group by TEACHERID,t.TEACHERID=x.TEACHERID上的questionid x对于您的更新语句,您要将:和t.questionid=x.questionid添加到您的加入中。明白了!我觉得这很简单。请将其插入表中,我可以运行如下更新语句:update TEST set AVGSCORE\u TEACHER=x.测试中的分数t join选择TEACHERID,questionid,score=AVGSCORE from TEST group by TEACHERID,t.TEACHERID=x.TEACHERID上的questionid x对于更新语句,您要将:和t.questionid=x.questionid添加到您的加入中。