xquery - 不使用 Group by 的替代 xquery
问题描述
以下 XML 示例显示类型为“主”的数据记录,这些记录链接到类型为“系列”的 0..N 个内容。我想检测具有相同标题()属性的大师的现有系列记录的数量。
<?xml version="1.0" encoding="UTF-8"?>
<program_file fechaCreacion="20180919184224">
<version>1.0</version>
<programs>
<program id_programa="1">
<tipo_programa>Master</tipo_programa>
<titulo >tit1</titulo>
<año>2018</año>
</program>
<program id_programa="2">
<tipo_programa>Master</tipo_programa>
<titulo >tit1</titulo>
<año>2018</año>
</program>
<program id_programa="3">
<tipo_programa>Master</tipo_programa>
<titulo >tit2</titulo>
<año>2018</año>
</program>
<program id_programa="5">
<id_serie>1</id_serie>
<tipo_programa>Series</tipo_programa>
<episodio>8</episodio>
<temporada>1</temporada>
<titulo >tit1</titulo>
<año>2018</año>
</program>
<program id_programa="6">
<id_serie>2</id_serie>
<tipo_programa>Series</tipo_programa>
<episodio>8</episodio>
<temporada>1</temporada>
<titulo >tit1</titulo>
<año>2018</año>
</program>
<program id_programa="7">
<id_serie>3</id_serie>
<tipo_programa>Series</tipo_programa>
<episodio>8</episodio>
<temporada>1</temporada>
<titulo >tit2</titulo>
<año>2018</año>
</program>
</programs>
</program_file>
我设法使用 Group by 进行了一个查询,该查询为我提供了正确的结果(使用 BaseX):
let $dup_masters := doc("C:/Users/fgarcia/Documents/Optiva/Orange/programs_sample.xml")/program_file/programs
return
<distinct-names> {
for $dups in $dup_masters/program
order by $dups/titulo
group by $title := $dups/titulo
return
if(count(distinct-values($dups[tipo_programa="Master"]/@id_programa)) > 1) then
element {"Master"}
{
attribute {"title"} {$title},
for $id in distinct-values($dups[tipo_programa="Master"]/@id_programa)
return (
<td>{$id}</td>,
<td>{count($dups[id_serie=($id)])}</td>
)
}
else ()
}</distinct-names>
问题是,当我将此代码移至 Exist-db 时,我没有得到任何结果,我想知道这是否与存在的 Group By 的实现有关。欢迎任何有关如何以不同方式解决此问题的想法/提示!
解决方案
推荐阅读
- c++ - 线程已退出,代码为 1:Join() 和 Detach()
- angular - 在docker中运行角度单元测试-无法加载浏览器RangeError:超出最大调用堆栈大小
- python - 使用数组/索引切片
- javascript - 单击复选框的文本描述仅切换第一个复选框
- javascript - JQuery:根据浏览器调整大小调整图像大小
- javascript - 由于无法读取未定义错误的属性“then”,Knex 事务无法正常工作
- java - Android 应用程序在我尝试运行它时立即崩溃(通过模拟器):java.lang.ClassNotFoundException
- swift - 如何创建可以替换参数的函数?
- swift - 为什么 TableView 突出显示两个按钮?
- r - R:plot:text: 改变绘图中文本的颜色