sql,平均值递减

用sql语法求平均值,然后平均值递减QQ截图20210330153344.png

黑暗大帅 发布于 2021-3-30 15:35 (编辑于 2021-3-30 15:39)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
happy_cangcangLv4初级互助
发布于2021-3-30 16:31(编辑于 2021-3-30 16:57)

你这个问题问的有点问题,应该把递减改成相减。

一般这种情况都是可以用动态隔间运算来解决的。可以参考下:环比-https://help.fanruan.com/finereport/doc-view-350.html

如果要用代码来解决的话,需要表之间的关联,例子:

SELECT t1.*, t2.*, t2.平均成绩 - t1.平均成绩 AS '差值'

FROM

( select t.classno,

            cast(replace(t.classno,'Class','') as int) as 'no',

            avg(t.grade) as '平均成绩'

   from stscore t  

 group by t.classno  

 order by t.classno

) t1

left join

( select t.classno,

            replace(t.classno,'Class','')+1 as 'no',

            avg(t.grade) as '平均成绩'

    from stscore t  

  group by t.classno 

  order by t.classno

) t2 on t1.no=t2.no

order by t1.classno;

最佳回答
0
ScyalcireLv7中级互助
发布于2021-3-30 15:36(编辑于 2021-3-30 15:42)

最后直接加order by round(avg(grade),2) desc

  • 黑暗大帅 黑暗大帅(提问者) 用sql语法求平均值,然后平均值递减
    2021-03-30 15:37 
  • Z4u3z1 Z4u3z1 回复 黑暗大帅(提问者) 最后加 order by 2 desc
    2021-03-30 15:39 
  • Scyalcire Scyalcire 回复 黑暗大帅(提问者) 你这个不是已经算好了吗 最后再加order by 平均值 desc
    2021-03-30 15:39 
  • 黑暗大帅 黑暗大帅(提问者) 回复 Scyalcire 我算的是平均值,要的结果是平均值的差
    2021-03-30 15:43 
  • Scyalcire Scyalcire 回复 黑暗大帅(提问者) 平均值的差是啥?你提问的时候 也没说计算逻辑啊
    2021-03-30 15:44 
最佳回答
0
snrtuemcLv8专家互助
发布于2021-3-30 15:40

select classno,round(avg(grade),2) from stscore group by classno order by round(avg(grade),2) desc

image.png

  • 4关注人数
  • 602浏览人数
  • 最后回答于:2021-3-30 16:57
    请选择关闭问题的原因
    确定 取消
    返回顶部