XQuery 3.0: Gruppierungen mit group by
In XQuery 3.0 sind mit group by auch Gruppierungen möglich.
Analog zu xsl:for-each-group können Sie auch in XQuery einen Gruppierungsschlüssel individuell zusammenstellen.
xquery version "3.0";
<ergebnis>
{
for $m in //Mensch
let $gehalt := xs:decimal($m/Gehalt/text())
let $status := if ($gehalt > 5000 )
then ('reich')
else if ($gehalt <= 5000 and $gehalt > 1000 )
then ('wohlhabend')
else ('normal')
group by $status
return
<Kunde status="{$status}">
{
for $kk in $m
order by $kk/Gehalt/text() descending
return
<k NN="{$kk/name/text()}"
VN="{$kk/vorname/text()}"
EK="{$kk/Gehalt/text()}"
WO="{$kk/../name/text()}"/>
}
</Kunde>
}
</ergebnis>
Das Ergebnis können Sie hier sehen:
<ergebnis> <Kunde status="normal"> ...
Get XML -- Technologien, Grundlagen, Validierung, Auswertung now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.