加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – 如何计算XQuery中每个不同值的实例?

发布时间:2020-12-16 22:39:40 所属栏目:百科 来源:网络整理
导读:我有一个包含以下元素和属性的 XML文件: elementunit id="1" color="blue"/unit id="2" color="blue"/unit id="3" color="red"//element 我如何计算1)每种属性颜色的不同出现次数和2)每次不同事件的计数? 到目前为止,我已经尝试了distinct-values()和count
我有一个包含以下元素和属性的 XML文件:

<element>
<unit id="1" color="blue"/>
<unit id="2" color="blue"/>
<unit id="3" color="red"/>
</element>

我如何计算1)每种属性颜色的不同出现次数和2)每次不同事件的计数?

到目前为止,我已经尝试了distinct-values()和count()以及它们的组合,没有运气,以不同属性的数量或它们的数量结束,尽管我想得到两者.

我想得到的结果列表如下所示:

Blue 2
Red 1

解决方法

此查询应该执行您想要的操作:

let $input :=
  <element>
    <unit id="1" color="blue"/>
    <unit id="2" color="blue"/>
    <unit id="3" color="red"/>
  </element>

return
  for $value in distinct-values($input/unit/@color)
  let $count := count($input/unit[@color eq $value])
  order by $count descending
  return concat($value," ",$count)

这在MarkLogic中为我生成以下输出:

blue 2
red 1

更新:我修改了查询,因此它按计数值对结果进行排序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读