我希望形成一个xQuery,如果这个类别包含超过x的书籍,它将返回书籍的类别.例如,如果我有4个类别; 音乐,电影,教育,健康和他们都有1本书,除了音乐有3,我正在寻找列出该类别.我尝试了一系列查询,但似乎无法正确使用,我每次都没有得到任何结果,我相信我需要在某些时候使用不同的值?不太确定.
源的例子可以看到下面,即时通讯在犯规源保存为一个文件,所以对我来说,测试的XQuery已经开始使用编辑器测试查询:
例如,$ book in/bookstore/book ...
<bookstore>
<book category="Music">
<year> 2005 </year>
<price> 50 </price>
</book>
<book category="Music">
<year> 2010 </year>
<price> 35 </price>
</book>
<book category="Music">
<year> 1982 </year>
<price> 70 </price>
</book>
<book category="Film">
<year> 2000 </year>
<price> 10 </price>
</book>
<book category="Health">
<year> 1965 </year>
<price> 50 </price>
</book>
<book category="Education">
<year> 2012 </year>
<price> 70 </price>
</book>
</bookstore>
Run Code Online (Sandbox Code Playgroud)
任何帮助都非常感谢!
类似于@ koopajah的答案,因为我已经写了它,我会提交它...
for $category in distinct-values(/*/book/@category)
where count(/*/book[@category=$category]) >= 3
return
<results>{$category}</results>
Run Code Online (Sandbox Code Playgroud)
有了外部文件......
let $doc := doc('input.xml')
for $category in distinct-values($doc/*/book/@category)
where count($doc/*/book[@category=$category]) >= 3
return
<results>{$category}</results>
Run Code Online (Sandbox Code Playgroud)
来自评论的修改xquery ...
for $x in doc('input.xml')/bookstore
for $y in distinct-values($x/book/@category)
where count($x/book[@category=$y]) >= 3
return $y
Run Code Online (Sandbox Code Playgroud)