查找Xquery中员工最多的部门

查找Xquery中员工最多的部门,xquery,Xquery,我试图在以下xml文档中找到员工最多(及其员工数量)的部门: <organization> <departements> <dept id="d1"> <name>accounting</name> </dept> <dept id="d2"> <name>marketing</name&

我试图在以下xml文档中找到员工最多(及其员工数量)的部门:

  <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]