Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een statistische functie voert een berekening uit op een set waarden en retourneert een waarde. Hierdoor kunt u samenvattingsstatistieken genereren voor groepen op meerdere niveaus met weinig overhead.
Over statistische functies
Statistische functies in Windows Search Structured Query Language (SQL) hebben de volgende syntaxis:
AGGREGATE <function> [AS <label>] [,<function> [AS <label>]]*
Het functiegedeelte kan een van de volgende functies en syntaxis bevatten:
| Functie | Beschrijving |
|---|---|
| AVG(<kolom>) | Retourneert het gemiddelde van de waarden in een groep. Alleen van toepassing op getallen. |
| BYFREQUENCY(<kolom>, <N>) | Retourneert de meest voorkomende N-kolomwaarden uit de resultaten in de groep. Bevat ook het aantal keren dat elke waarde heeft plaatsgevonden en document-id's voor resultaten die elke geretourneerde waarde bevatten. |
| CHILDCOUNT() | Retourneert het aantal items in een groep (met uitzondering van subgroepen). Als er meerdere groepeerniveaus zijn, wordt hiermee het aantal directe onderliggende groepen geretourneerd. |
| COUNT() | Retourneert het aantal items in een groep en alle subgroepen. |
| DATERANGE(<kolom>) | Retourneert de onder- en bovengrenzen van de kolomwaarden die in de groepsresultatengroep zijn gevonden. Alleen geldig voor filetime-eigenschappen. |
| FIRST(<kolom>, <N>) | Retourneert de eerste N-kolomwaarden uit bladresultaten die in een groep zijn gevonden. |
| MAX(<kolom>) | Retourneert de maximumwaarde in de expressie. Alleen van toepassing op getallen of datums. |
| MIN(<kolom>) | Retourneert de minimumwaarde in de expressie. Alleen van toepassing op getallen of datums. |
| REPRESENTATIVEOF(<kolom>, <idRepresentative>, <N>) | Retourneert N idRepresentatieve waarden, die elk zijn geselecteerd uit een van de resultaatsubsets met een unieke kolomwaarde. Elke waarde wordt ook geretourneerd met een document-id die de idRepresentative waarde heeft. |
| SUM(<kolom>) | Retourneert de som van de waarden in een groep. Alleen van toepassing op getallen. |
Notitie
Aggregaties worden geretourneerd als afzonderlijke kolommen. Dit zijn voornamelijk eenvoudige typen, met uitzondering van ByFrequency, First, DateRange en RepresentativeOf die worden geretourneerd als samengestelde typen.
U kunt elke numerieke of datumkolom gebruiken voor aggregaties en niet alleen voor aggregaties die zich in de SELECT-component bevinden. U kunt echter niet groeperen op aggregaties. Er wordt een syntaxisfout geretourneerd als het doorgegeven kolomargument geen numeriek of datumtype is.
Het labelgedeelte is optioneel en biedt een beter leesbare alias voor het label. Als u geen aliaslabel opneemt, transformeert Windows Search de functie en kolomnaam in een label. Max(System.Document.WordCount) wordt bijvoorbeeld MAX_SystemDocumentWordCount.
Groepen op meerdere niveaus en tellen
Aggregaties worden gedefinieerd over bladeren en worden gedupliceerd. Een aggregaties neemt als invoer de bladeren van de groep die deze definieert (documenten) in plaats van de subgroepen van de onderliggende groepen. Deze functionaliteit wordt groepering op meerdere niveaus genoemd.
Naast aggregaties die worden gedefinieerd over bladeren en gedupliceerd, worden ze slechts één keer geteld. Hoewel hetzelfde document meerdere keren onder één groep kan worden weergegeven, wordt dit slechts één keer beschouwd door aggregaties. In de volgende afbeelding ziet u dit concept.
Statistische voorbeelden
Hieronder ziet u voorbeelden van statistische functies in de GROUP ON-component:
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')))
Retourwaarde
De retourwaarde is een variant die in de rijenset als een aangepaste eigenschap wordt gevonden, hetzij als de opgegeven aliassen of als aggregaties als er geen aliaslabel is opgegeven.