当前位置: 代码迷 >> Sql Server >> 计算每个人的成绩平均分(自各儿的),然后按最高分排序
  详细解决方案

计算每个人的成绩平均分(自各儿的),然后按最高分排序

热度:141   发布时间:2016-04-24 08:47:43.0
计算每个人的成绩平均分(自己的),然后按最高分排序?
ID, NAME, SCORE
1, zhao, 90
2, qian, 80
3, zhao, 60
4, zhao, 90
5, qian, 80
6, sun, 100
7, sun, 100
8, li, 70

每个人的成绩平均分(自己的),然后按最高分排序。并且输出这个人出现的次数。
输出如下:

NAME, AVG, TIMES  
SUN, 100, 2
ZHAO, 80, 3
QIAN, 80, 2
LI, 70, 1
------解决思路----------------------
with data(ID, NAME, SCORE) as
(
select 1, 'zhao', 90 union all
select 2, 'qian', 80 union all
select 3, 'zhao', 60 union all
select 4, 'zhao', 90 union all
select 5, 'qian', 80 union all
select 6, 'sun', 100 union all
select 7, 'sun', 100 union all
select 8, 'li', 70
)
select 
data.name
,AVG(data.score) as avgscore
,count(1) as times
from data
group by name
order by avgscore desc
  相关解决方案