Как найти Среднее элемента в xQuery? - PullRequest
0 голосов
/ 09 мая 2019

Найдите названия отделов, средняя зарплата которых превышает 5000

У меня есть такой XML-код.

<emps>
    <employee ename="Ramesh">
        <department>
            <name>IT</name> 
            <salary>6000</salary>
        </department>
    </employee>
    <employee ename="Ram">
        <department>
            <name>IT</name> 
            <salary>16000</salary>
        </department>
    </employee>

     <employee ename="Sam">
        <department>
            <name>Sales</name> 
            <salary>1000</salary>
        </department>
    </employee>
</emps>

И ожидаемый результат следующий. Это единственный отдел со средней зарплатой выше 5000

<department>IT</department>

1 Ответ

1 голос
/ 09 мая 2019

Существует функция avg, а в XQuery 3 и более поздних версиях можно легко сгруппировать элементы с помощью предложения group by выражения FLOWR:

for $dep in //department
group by $name := $dep/name
where avg($dep/salary) > 5000
return <department>{$name}</department>

https://xqueryfiddle.liberty -развития.сеть / eiQZDbr

...