同じノードの属性を比較してカウントする際に問題が発生しました。たとえば、同じ日に複数回操作した医師をフィルタリングする必要があります。私の例のxmlはこれです:同じノードの属性を比較する方法
<ops>
<med_operation pac="p1" doctor="David" date="2017-01-01" />
<med_operation pac="p2" doctor="David" date="2017-01-01" />
<med_operation pac="p3" doctor="Ana" date="2017-01-02" />
</ops>
私は同じ日に2つの操作を行った唯一の "David"だけを表示する必要があります。私は
let $m := distinct-values(
let $dates := //med_operation/@date
for $d in $dates
let $ope := //med_operation[@date=$d]
let $c := count(//med_operation[@date=$d])
for $y in (1 to $c)
where ($ope[$y]/@date) = ($ope[$y+1]/@date) and $c > 1
return distinct-values($ope/@doctor)
)
return $m
事前のおかげで、この貧しいクエリを持って、私の英語のため申し訳ありません
は、このXQueryの1.0または3.0/3.1ですか? XQuery 3.0では、このようなことをやりやすくする「グループ化」演算子が導入されました。 –
3.0。私はいくつかのことを試みましたが、まだxqueryで始まっています –