Delen via


HAVING-component

De HAVING-component wordt gebruikt om de gebeurtenissen te filteren die worden ontvangen tijdens het groeperingsinterval dat is opgegeven in de WITHIN-component. Een SELECT-instructie kan bijvoorbeeld zo worden samengesteld dat er niets wordt geretourneerd, tenzij er binnen het afgelopen interval van 30 seconden ten minste vijf gebeurtenissen zijn geweest.

De WITHIN-component volgt onmiddellijk in de SELECT-instructie na de GROUP component. De HAVING-component werkt op de eigenschap NumberOfEvents van de systeemklasse __AggregateEvent waarvan de groep die is gemaakt door de GROUP-component lid is. De HAVING-component kan alle standaard relationele operators gebruiken.

De syntaxis is als volgt:

SELECT * FROM EventClass [WHERE property = value] 
  GROUP WITHIN interval [BY property_list]
  HAVING NumberOfEvents operator constant

De EventClass-waarde is de gebeurtenisklasse waarvan de gebeurtenis lid is en waarde de waarde is voor de eigenschap waarvoor een melding is vereist. Het interval is een niet-ondertekend geheel getal dat het groeperingsinterval (in seconden) aangeeft nadat de eerste gebeurtenis is ontvangen. De eigenschappenlijst is een door komma's gescheiden lijst met een of meer eigenschappen die zijn opgenomen in de gebeurtenisklasse. De operator is een relationele operator. De constante waarde is een niet-ondertekend 32-bits geheel getal dat het aantal gebeurtenissen aangeeft dat wordt gebruikt voor het filteren.

Wanneer u de HAVING-component gebruikt, zijn de WHERE- en BY-componenten optioneel.

De volgende gebeurtenisquery vraagt aan dat meldingen van de EmailEvent--klasse worden gegroepeerd in één gebeurtenis van 300 seconden na de eerste gebeurtenis die WMI ontvangt. De query vraagt ook de __AggregateEvent instantie alleen worden bezorgd als WMI in die 300 seconden meer dan vijf e-mail gebeurtenissen ontvangt.

SELECT * FROM EmailEvent GROUP WITHIN 300 HAVING NumberOfEvents > 5

In het volgende voorbeeld worden alle gebeurtenissen gegroepeerd die in 600 seconden (dat wil gezegd 10 minuten) zijn ontvangen door de TargetInstance-.eigenschap SourceName. In dit voorbeeld worden statistische gebeurtenissen alleen geleverd als het aantal Win32_NTLogEvent gebeurtenissen dat van dezelfde bron is ontvangen, groter is dan 25. Houd er rekening mee dat de ISA-operator ervoor zorgt dat de eigenschap TargetInstance van de systeemklasse van de __InstanceCreationEvent een exemplaar van de Win32_NTLogEvent-klasse vertegenwoordigt.

SELECT * FROM __InstanceCreationEvent 
  WHERE TargetInstance ISA "Win32_NTLogEvent" 
  GROUP WITHIN 600 BY TargetInstance.SourceName
  HAVING NumberOfEvents > 25