【问题标题】:Count in xquery在 xquery 中计数
【发布时间】:2020-05-03 17:53:07
【问题描述】:

我正在尝试解决这个问题,但是这段代码给了我结果而不计算它。我的意思是我需要它是 13,但结果是除以值为 1 的行。

1

1

1

1

1

1

1

1

1

1

1

1

1

这是问题,这就是我所做的。

列出在一个拥有佛教宗教(元素,值为“佛教”)的国家中拥有边界(元素)的国家数量。正确的查询必须返回值 13。

for $var in /mondial/country
let $religion:=/mondial/country[religions="Buddhist"]/data(@id)
where $var /border/@country=$religion
return data (count($var/name) 

【问题讨论】:

    标签: count xquery


    【解决方案1】:

    这应该可以让你到达那里。我更改了变量名称以使内容更具可读性:

    let $country := mondial/country
    let $buddhist := $country[religions[./text()="Buddhist"]]/@id
    return  count($country[.//border[@country=$buddhist]])
    

    输出:

    13
    

    【讨论】:

      【解决方案2】:

      不是在迭代时返回每个项目的计数,而是返回每个选定的项目并将其分配给一个变量,然后您可以获得分配给该变量的序列项目的计数:

      let $names := 
        for $var in /mondial/country
        let $religion:= /mondial/country[religions="Buddhist"]/data(@id)
        where $var/border/@country=$religion
        return $var/name 
      return count($names)
      

      您也可以在单个 XPath 语句中执行此操作: count(/mondial/country[border/@country=/mondial/country[religions="Buddhist"]/data(@id)])

      【讨论】:

        猜你喜欢
        • 2012-05-04
        • 1970-01-01
        • 2012-03-13
        • 1970-01-01
        • 1970-01-01
        • 2014-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多