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