XQuery Avg函数仅给出单个元素的平均值

时间:2014-11-07 09:17:12

标签: database xquery saxon

所以我是XQuery的新手,并试图使用Avg功能来获得一些学生的平均GPA。因此,对于学生来说,我返回avg($ s / GPA),但这只是给了我一个巨大的所有学生名单和他们个人的GPA(我假设是平均的,因此相同)。这是实际的代码:

    <T> {
  for $s in doc("ComS363/UniversityDatasets/Student.xml")/Students/Student
    return
   <AverageGPA> {avg($s/GPA)} </AverageGPA>
    } </T>;

当我得到结果列表时,它只是一个很长的列表,而不是一个结果:

<AverageGPA> 2.91 </AverageGPA> 
<AverageGPA> 3.91 </AverageGPA>
<AverageGPA> 4.0 </AverageGPA> 
<AverageGPA> 3.22 </AverageGPA>
<AverageGPA> 1.31 </AverageGPA> 
<AverageGPA> 3.60 </AverageGPA>
  ....and so on......

我知道这可能是一个愚蠢的错误/我错过的东西,但在凌晨3点,我无法理解。在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你现在正在为每个学生打电话给avg(),你应该为所有学生打电话:

avg(doc("ComS363/UniversityDatasets/Student.xml")/Students/Student/GPA)