查找Xquery中员工最多的部门
我试图在以下xml文档中找到员工最多(及其员工数量)的部门:查找Xquery中员工最多的部门,xquery,Xquery,我试图在以下xml文档中找到员工最多(及其员工数量)的部门: <organization> <departements> <dept id="d1"> <name>accounting</name> </dept> <dept id="d2"> <name>marketing</name&
<organization>
<departements>
<dept id="d1">
<name>accounting</name>
</dept>
<dept id="d2">
<name>marketing</name>
</dept>
<dept id="d3">
<name>production</name>
</dept>
</departements>
<employees>
<emp id="e1">
<name>...</name>
<activities>
<activity ref="d1"/>
</activities>
</emp>
<emp id="e2">
<name>...</name>
<activities>
<activity ref="d2"/>
<activity ref="d3"/>
</activities>
</emp>
<emp id="e3">
<name>...</name>
<activities>
<activity ref="d3"/>
</activities>
</emp>
<emp id="e4">
<name>...</name>
<activities>
<activity ref="d2"/>
</activities>
</emp>
</employees>
</organization>
上述查询返回以下输出:
<dept id="d2">
<name>marketing</name>
</dept>
<dept id="d2">
<name>marketing</name>
<employees>2</employees>
</dept>
<dept id="d3">
<name>production</name>
<employees>2</employees>
</dept>
市场营销
我希望获得以下输出:
<dept id="d2">
<name>marketing</name>
</dept>
<dept id="d2">
<name>marketing</name>
<employees>2</employees>
</dept>
<dept id="d3">
<name>production</name>
<employees>2</employees>
</dept>
市场营销
2.
生产
2.
您可以创建要输出的部门
元素,确定员工的最高数量,然后输出与最大数量匹配的员工
我相信有一种更有效的方法,但这是我首先想到的
let $doc := doc('emp_dept.xml')
let $newDept := for $dept in $doc//dept
return
<dept>{$dept/@*,$dept/*,
<employees>{count($doc//emp[activities/activity/@ref=$dept/@id])}</employees>
}</dept>
let $maxEmployees := max($newDept/employees)
return
$newDept[employees=$maxEmployees]
let$doc:=doc('emp_dept.xml'))
让$newDept:=对于$doc//dept中的$dept
返回
{$dept/@*,$dept/*,
{count($doc//emp[activities/activity/@ref=$dept/@id]))
}
设$maxEmployees:=max($newDept/employees)
返回
$newDept[员工=$maxEmployees]