首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以对这个查询进行调优以去掉fn:distinct value吗?

我可以对这个查询进行调优以去掉fn:distinct value吗?
EN

Stack Overflow用户
提问于 2014-04-09 14:34:04
回答 1查看 148关注 0票数 0

有人能告诉我是否可以通过去掉fn:distinct-values($d2)表达式来改进这个查询吗?

代码语言:javascript
复制
xquery version "1.0-ml";
declare namespace zespc = "http://www.cendris.nl/postcode";
declare namespace op = "http://www.nvsp.nl/oplage-mapping";

let $wijk := '665402'
let $d1 := fn:distinct-values(fn:doc('/data/map/oplage-mapping.xml')//op:map[@wijk_id = $wijk]/@ppc6_id)

let $q1 := cts:element-attribute-range-query(
      xs:QName("op:map"), xs:QName("wijk_id"), "=",
      $wijk)

let $d2 := cts:search(//op:map,$q1)/@ppc6_id
let $d3 := fn:distinct-values($d2)

return (fn:count($d1), fn:count($d3))

Thx,

雨果

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-09 15:36:19

我不是百分之百确定你的目标是什么,但这应该会返回同等的结果。您将需要另一个属性范围索引,这次是在op:map/@ppc6_id上。

注意排序规则,如果合适,可以考虑使用数字类型。

代码语言:javascript
复制
xquery version "1.0-ml";
declare namespace zespc="http://www.cendris.nl/postcode";
declare namespace op="http://www.nvsp.nl/oplage-mapping";

let $wijk := '665402' (: Consider using integers instead of strings :)
let $q-wijk := cts:element-attribute-range-query(
  xs:QName("op:map"), xs:QName("wijk_id"),
  '=', $wijk)
let $ref-ppc := cts:element-attribute-reference(
    xs:QName('op:map'), xs:QName('ppc6_id'))
let $values-doc := cts:values(
  $ref-ppc, (),
  cts:and-query(
    (cts:document-query('/data/map/oplage-mapping.xml'),
     $q-wijk)))
let $values-all := cts:values($ref-ppc, (), $q-wijk)
return (count($values-doc), count($values-all))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22965837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档