我有这个密码
for $sea in distinct-values (doc("mondial.xml")//island/tokenize(@sea,"\s"))
let $count := count(doc("mondial.xml")//island[@sea = $sea]/tokenize(@sea,"\s"))
let $seacount := concat($sea," ",$count)
return $seacount又回到了我身边
海洋-太古海洋3海-格林兰海0海-挪威海1海-巴伦茨海0
海-大西洋53海-拉布拉多海0.“等等。
如您所见,数字是$count,而sea部分是变量$sea。我现在要坚持的是选择$sea,它的最大值为$count的所有计数,并显示这个海名。我尝试过向以下内容添加一个$max变量:
for $sea in distinct-values (doc("mondial.xml")//island/tokenize(@sea,"\s"))
let $count := count(doc("mondial.xml")//island[@sea = $sea]/tokenize(@sea,"\s"))
let $seacount := concat($sea," ",$count)
$max := concat($sea," ",max($count))
return $max还尝试通过$count (降序)语句添加一个order,然后返回第一个节点:
for $sea in distinct-values (doc("mondial.xml")//island/tokenize(@sea,"\s"))
let $count := count(doc("mondial.xml")//island[@sea = $sea]/tokenize(@sea,"\s"))
let $seacount := concat($sea," ",$count)
order by $count descending
return $seacount[1]我是走错路了还是?
发布于 2015-03-28 20:20:00
这将返回结果序列的每个迭代的第一个节点。在这种情况下,$seacount总是一个1字符串的序列,所以您总是选择与('sea-value count')[1]等价的字符串,这就是单例字符串的值。若要只选择一个整体,请将整个查询包装为parens,以创建所有迭代的所有值的序列,然后选择其中的第一个:
(for $sea in distinct-values (doc("mondial.xml")//island/tokenize(@sea,"\s"))
let $count := count(doc("mondial.xml")//island[@sea = $sea]/tokenize(@sea,"\s"))
let $seacount := concat($sea," ",$count)
order by $count descending
return $seacount)[1]https://stackoverflow.com/questions/29321671
复制相似问题