首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server Average查询

SQL Server Average查询
EN

Stack Overflow用户
提问于 2015-03-03 19:32:46
回答 2查看 64关注 0票数 2

有没有人能告诉我如何查询这个平均值?

我有这张桌子。

代码语言:javascript
复制
 teacher | class | students | rating
 -----------------------------------
   T1        1      001        6
   T1        1      002        6
   T1        2      003        1
   T1        3      004        1
   T2        1      001        6
   T2        1      002        6
   T2        2      003        1
   T2        3      004        1

如果我使用Select teacher, class, avg(rating) from table group by teacher, class,我会得到这样的结果:

代码语言:javascript
复制
teacher | class | rating
------------------------
   T1       1     6
   T1       2     1
   T1       3     1
   T2       1     6
   T2       2     1
   T2       3     1

我想要做的是获得结果的平均rating,并按teacher对其进行分组,即:

代码语言:javascript
复制
teacher | rating
------------------------
   T1      2.66667
   T2      2.66667

因为如果我使用Select avg(rating) from table group by teacher,我会得到

代码语言:javascript
复制
teacher | rating
------------------------
   T1      3.5
   T2      3.5
EN

回答 2

Stack Overflow用户

发布于 2015-03-03 19:38:48

您可以这样做:

代码语言:javascript
复制
SELECT teacher,avg(avgrating) as avgrating
FROM
(Select teacher, class, avg(rating) avgrating
from TableName 
group by teacher, class) Temp
GROUP BY teacher

结果:

代码语言:javascript
复制
TEACHER   AVGRATING
T1        2.666666
T2        2.666666

格式的示例结果。

OR:

代码语言:javascript
复制
SELECT T1.teacher,avg(T2.avgrating) as rating
FROM TableName T1 JOIN
(SELECT teacher,class,avg(rating) as avgrating
 FROM TableName T2
 GROUP BY teacher,class) T2 ON T1.teacher=T2.teacher
GROUP BY T1.teacher

票数 2
EN

Stack Overflow用户

发布于 2015-03-03 19:39:46

使用嵌套select:

代码语言:javascript
复制
select teacher , avg(avgr) from
 (Select teacher, class, avg(rating) avgr from table group by teacher, class) qry
group by teacher
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28830765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档