for $element in collection("sortie_BAO2_TT_3214")//element let $suivant:=$element/following-sibling::element[1] let $third:=$element/following-sibling::element[2] let $fourth:=$element/following-sibling::element[3] let $patron:= ( if(( $element/data[1]="NOM") and (contains($suivant/data[1],"PRP")) and ($third/data[1]="NOM") and (contains($fourth/data[1],"PRP")) ) then concat($element/data[3]/text()," ",$suivant/data[3]/text()," ",$third/data[3]/text()," ",$fourth/data[3]/text()) else "non" ) where $patron !="non" group by $regroupement:=$patron order by count($patron) descending return string-join(($regroupement,count($patron))," ")