Oracle sql找到平均值和最低平均值之间的差异

时间:2014-12-10 12:02:23

标签: sql oracle

  1. (简单)找出每个学生的平均成绩与他的小组中最佳平均成绩之间的差异。 请帮忙.... 我正在努力找出问题仍未解决。 我应该使用分区功能以及如何生成一组中最佳学生平均水平与低年级学生之间的差异。
  2. 这是我的查询,

    **select 
    students.st_id,students.st_group,
    rank() over (partition by students.st_group order by avg(grades.g_grade) desc ) as ranking ,
    lead(avg(grades.g_grade), 1, 0) OVER (PARTITION BY students.st_group ORDER BY avg(grades.g_grade) DESC NULLS LAST) DifferencebetweenHigheraverage,
    avg(grades.g_grade)
    from grades left join students on grades.g_student=students.st_id 
    group by students.st_id,students.st_group
    having students.st_group in (1,2,3);**
    

    请帮助....... enter image description here

1 个答案:

答案 0 :(得分:0)

如果在表STUDENT_GRADES中,我有属性

  1. ST_ID
  2. ST_GROUP
  3. ST_GRADE
  4. 选择查询以获得学生与其小组中最高成绩的区别

    with MAXGRADES as (select ST_GROUP, max(ST_GRADE) as MAX from STUDENT_GRADES) select ST_ID, ST_GRADE - MAX as DIFF from STUDENT_GRADES inner join MAXGRADES using(ST_GROUP)