Összesítő függvények

Az aggregátumfüggvény értékhalmazon végez számítást, és egy értéket ad vissza. Ez lehetővé teszi a többszintű csoportok összefoglaló statisztikáinak létrehozását kis többletterheléssel.

Tudnivalók az összesítő függvényekről

A Windows Search strukturált lekérdezési nyelvének (SQL) összesítő függvényei a következő szintaxissal rendelkeznek:

AGGREGATE <function> [AS <label>] [,<function> [AS <label>]]*

A függvényrész a következő függvények és szintaxisok bármelyikét tartalmazhatja:

Funkció Leírás
AVG(<oszlop>) Egy csoport értékeinek átlagát adja eredményül. Csak számokra vonatkozik.
BYFREQUENCY(<oszlop>, <N>) A csoport eredményei közül a leggyakoribb N oszlopértékeket adja vissza. Azt is tartalmazza, hogy az egyes értékek hányszor történtek, és az egyes visszaadott értékeket tartalmazó találatok dokumentumazonosítói.
CHILDCOUNT() Egy csoport elemeinek számát adja vissza (az alcsoportok kivételével). Ha több csoportosítási szint is létezik, ez az azonnali gyermekcsoportok számát adja vissza.
DARAB() Egy csoport és az összes alcsoport elemeinek számát adja vissza.
DATERANGE(<oszlop>) A csoport eredménycsoportjában található oszlopértékek alsó és felső határát adja vissza. Csak a filetime-tulajdonságokra érvényes.
FIRST(<oszlop>, <N>) Egy csoportban található levéleredmények első N oszlopértékeit adja vissza.
MAX(<oszlop>) A kifejezés maximális értékét adja vissza. Csak számokra vagy dátumokra vonatkozik.
MIN(<oszlop>) A kifejezés minimális értékét adja vissza. Csak számokra vagy dátumokra vonatkozik.
REPRESENTATIVEOF(<oszlop>, <idRepresentative>, <N>) N idRepresentative értékeket ad vissza, amelyek mindegyike az egyedi oszlopértékekkel rendelkező eredményrészek egyikéből van kiválasztva. A függvény minden értéket egy olyan dokumentumazonosítóval is visszaad, amely tartalmazza az idRepresentative értéket.
SZUM(<oszlop>) Egy csoport értékeinek összegét adja vissza. Csak számokra vonatkozik.

 

 

Jegyzet

Az összesítések egyéni oszlopokként lesznek visszaadva. Ezek többnyire egyszerű típusok, kivéve a ByFrequency, First, DateRange és RepresentativeOf típusokat, amelyeket összetett típusokként adnak vissza.

 

Az összesítésekhez bármilyen numerikus vagy dátumoszlopot használhat, és nem csak a SELECT záradékban szereplőket. Az összesítések azonban nem csoportosíthatók. Szintaxishiba akkor jelenik meg, ha az átadott oszlopargumentum nem numerikus vagy dátum típusú.

A címkerész nem kötelező, és olvashatóbb aliast biztosít a címkéhez. Ha nem tartalmaz aliascímkét, akkor a Windows Search címkévé alakítja a függvényt és az oszlopnevet. A MAX (System.Document.WordCount) például MAX_SystemDocumentWordCount lesz.

Többszintű csoportok és számlálás

Az aggregátumok leveleken vannak definiálva, és duplikálva vannak. Az aggregátum bemenetként az azt definiáló csoport leveleit (dokumentumokat) veszi fel a gyermekek alcsoportjai helyett. Ezt a funkciót többszintű csoportosításnak nevezzük.

A leveleken és duplikált elemeken definiált összesítéseken kívül csak egyszer számítja meg őket. Bár ugyanaz a dokumentum többször is szerepelhet egy csoportban, az összesítések csak egyszer veszik figyelembe. Az alábbi ábra ezt a koncepciót szemlélteti.

diagram, amely azt mutatja, hogy az aggregátumok leveleken vannak definiálva és duplikálva, és csak egyszer vannak megszámolva

Példák összesítése

Az alábbi példák a GROUP ON záradék összesítő függvényeit szemléltetik:

GROUP ON System.Sender ['d','m','r'] 
    AGGREGATE COUNT() as 'Total',
              MAX(System.Size) as 'Max Size',
              MIN(System.Size) as 'Min Size'
    OVER (SELECT System.Subject FROM systemindex)
              
GROUP ON System.Sender ['d', 'm', 'r']
      AGGREGATE MAX(System.Search.Rank) as 'MaxRank', 
                MIN(System.Search.Rank) as 'MinRank'
      OVER (GROUP ON system.conversationID
                  OVER (SELECT workid, System.ItemUrl FROM systemindex
                        WHERE CONTAINS (*, 'sometext')
                        ORDER BY System.DateCreated))
               
GROUP ON System.FileName [before('a'),before('z')] 
      AGGREGATE MAX(System.Size) as 'maxsize', MIN(System.Size) as 'MinSize' 
      OVER (SELECT System.FileName FROM systemindex
            ORDER BY System.FileName)      
            
GROUP ON System.author 
      AGGREGATE MAX(System.size) as 'maxsize' 
      ORDER BY min(System.Size) 
      OVER (GROUP ON System.DateCreated 
                  AGGREGATE Count() 
                  ORDER BY MAX(System.size) 
                  OVER (SELECT filename, System.DateCreated, System.Size FROM systemindex
                        WHERE CONTAINS('text')))

Visszaadott érték

A visszatérési érték a sorhalmazban egyéni tulajdonságként található variáns, a megadott aliasok vagy "Összesítések" értékként, ha nincs megadva aliascímke.