我想从列表中提取最频繁的元素。如何在XQuery 1.0中获得没有分组的最频繁元素?
名单$listOut
是这种类型的元素组成:
<Outcome>
<Parameter>B</Parameter>
<Value>15</Value>
<MinVal>1</MinVal>
<MaxVal>20</MaxVal>
</Outcome>
<Outcome>
<Parameter>A</Parameter>
<Value>15</Value>
<MinVal>1</MinVal>
<MaxVal>20</MaxVal>
</Outcome>
<Outcome>
<Parameter>D</Parameter>
<Value>43</Value>
<MinVal>34</MinVal>
<MaxVal>36</MaxVal>
</Outcome>
<Outcome>
<Parameter>B</Parameter>
<Value>4</Value>
<MinVal>1</MinVal>
<MaxVal>20</MaxVal>
</Outcome>
我想获得为<Parameter>B</Parameter>
,因为参数B出现2次,这是最常见的。
我不如何做到这一点,我不能使用group by
声明想法。 (仅适用于,让,排序,其中,返回)
我认为做这样的事情:
for $outOk in distinct-values($listOut)
let $paramOk := //Outcome[Parameter eq $outOk]
order by count(//Outcome[Parameter eq $outOk])
return $paramOk
但它自然是行不通的。
原样,你的问题是不完整的,因为它缺少非常重要的信息不能回答。包含单个元素的列表中最频繁的元素就是这个单个元素。请编辑您的问题以包含:合理的示例输入(多个元素,所以也有非最大元素),预期输出和解释您当前的代码有什么问题。 [如何发布SSCCE](http://sscce.org)提供了一个关于如何发布好问题的好教程。 –
请发布一个包含多个元素的较大示例文档,您期望的结果是什么以及结果实际是什么。告诉我们为什么实际产出不符合您的预期。 – Matthew
@JensErat我认为不需要更多的XML,只需** $ listOut **是元素列表**结果**。我添加了一些更多的代码,以更清晰 – Timmy