0
我的XML文档,如下所示:XQuery的分组,并找到最大值
<books>
<book><author>A</author></book>
<book><author>B</author></book>
<book><author>C</author></book>
<book><author>B</author></book>
<book><author>C</author></book>
</books>
现在,查询应与大多数书籍返回作者的姓名。在这种情况下B,C
(因为两者具有2本书)。的问题是,它必须是只有一个查询,所以找到最大(2),然后用2本书籍搜索作者是不是在这种情况下是可接受的解决方案。
这正是OP说他不想要的,因为它有2次通过,尽管我认为这根本不可能。 – wst 2013-02-14 21:11:47
这是一个单一的查询。在不存储中间结果的情况下,这是不可能的,因为你必须在过滤之前找出最大值。另一种方法是排序'$ authors'并与第一结果进行对照,但可能有更好的优化潜力,但在两端也打破了执行流水线。 – 2013-02-14 21:15:58
我同意你的看法,但这种调用一个查询是舒展。我想在OP的原始问题中,他说他不想要2次传球。如果你想要这种查询,它需要一个带有频率数据的索引。 – wst 2013-02-15 00:27:08