You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用XQuery统计每位讲师的section_listing分配数量求助

解决XQuery统计讲师授课section数量的问题

你的代码有两个核心问题:

  • XML文档里不存在instructor_listing元素,你要统计的是每个讲师对应的section_listing数量,并非这个不存在的节点
  • 没有对讲师姓名进行分组,只是逐个遍历section返回无效的count结果

正确的XQuery代码

let $sections := doc("course.xml")/root/course_listing/section_listing
for $instructor in distinct-values($sections/instructor)
let $count := count($sections[instructor = $instructor])
return 
<instructor_stats>
  <name>{$instructor}</name>
  <section_count>{$count}</section_count>
</instructor_stats>

代码说明

  1. 先用let获取所有section_listing节点的集合
  2. 通过distinct-values提取所有不重复的讲师姓名,避免重复统计同一讲师
  3. 对每个讲师,统计所有instructor值匹配当前讲师的section_listing数量
  4. 返回包含讲师姓名和对应section数量的结构化XML结果

针对你提供的XML文档,运行这段代码会得到如下结果:

<instructor_stats>
  <name>Gusavac</name>
  <section_count>2</section_count>
</instructor_stats>
<instructor_stats>
  <name>Silberg</name>
  <section_count>1</section_count>
</instructor_stats>

如果需要更简洁的文本输出,可调整返回格式:

let $sections := doc("course.xml")/root/course_listing/section_listing
for $instructor in distinct-values($sections/instructor)
let $count := count($sections[instructor = $instructor])
return concat($instructor, ": ", $count, " sections")

输出结果:

Gusavac: 2 sections
Silberg: 1 sections

内容的提问来源于stack exchange,提问作者user19485723

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 12:54:26