【问题标题】:Calculate average using XQuery使用 XQuery 计算平均值
【发布时间】:2015-04-01 15:58:52
【问题描述】:

我需要使用 XQuery 计算每门课程的平均值。

这是 XML 代码:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet href="class.xsl" type="text/xsl" ?>
<university>
<student><sname>Charlie Parker</name>
<course sigle="INF8430" note="69" />
<course sigle="INF1030" note="65" />
<course sigle="INF1230" note="73" /></student>
<student><name>Miles Davis</name>
<course sigle="INF8430" note="65" />
<course sigle="INF1030" note="77" />
<course sigle="INF1230" note="83" /></student>
<student><name>John Coltrane</name>
<course sigle="INF9430" note="24" />
<course sigle="INF1030" note="64" />
<course sigle="INF1230" note="56" /></student>
<student><name>Charles Mingus</name>
<course sigle="INF8430" note="34" />
<course sigle="INF1230" note="89" /></student>
</university>

输出文件应如下所示:

<list>
<course sigle="INF8430">85</course>
<course sigle="INF1030">76.66666666666667</course>
<course sigle="INF1230">81.5</course>
<course sigle="INF9430">39</course>
</list>

非常感谢您的帮助!

【问题讨论】:

  • 很高兴说出您的尝试。这个网站是关于帮助的,而不是为你做的!

标签: xquery


【解决方案1】:
element list {
  let $courses := doc('mydoc.xml')/university/student/course
  for $id in distinct-values($courses/@sigle)
  let $values := $courses[@sigle = $id]/xs:double(@note)
  return element course {
    attribute sigle { $id },
    fn:avg($values)
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-14
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    相关资源
    最近更新 更多