勇芳软件工作室.汉化:  Windows Management Instrumentation > WQL (SQL for WMI) >

HAVING Clause

Previous pageReturn to chapter overviewNext page

HAVING子句用于过滤在WITHIN子句中指定的分组间隔期间接收到的事件。在GROUP子句之后,WITHIN子句立即在SELECT语句中。HAVING子句对__AggregateEvent系统类的NumberOfEvents属性进行操作,其中由GROUP子句创建的组是成员。HAVING子句可以使用所有的标准关系运算符。

 

语法如下:

 

SELECT * FROM EventClass [WHERE property = value]

GROUP WITHIN interval [BY property_list]

HAVING NumberOfEvents operator constant

 

EventClass值是事件是其成员的事件类,value是需要通知的属性的值。间隔是一个无符号整数,表示收到第一个事件后的分组间隔(以秒为单位)。属性列表是以事件类中包含的一个或多个属性的逗号分隔列表。操作员是任何关系运算符。常数值是指示用于过滤的事件数量的任何无符号32位整数。

 

使用HAVING子句时,WHERE和BY子句是可选的。

 

以下事件查询请求,在WMI接收的第一个事件后300秒内将EmailEvent类的通知分组为一个事件。此外,查询请求只有在WMI在300秒内收到五个以上的电子邮件事件时才应该发送。

 

SELECT * FROM EmailEvent GROUP WITHIN 300 HAVING NumberOfEvents > 5

 

以下示例将通过TargetInstance.SourceName属性分组在600秒(即10分钟)内收到的所有事件。在此示例中,只有从同一来源接收的Win32_NTLogEvent事件的数量超过25时,才会传送聚合事件。请记住,ISA操作员使__InstanceCreationEvent系统类的TargetInstance属性表示Win32_NTLogEvent类的一个实例。

 

SELECT * FROM __InstanceCreationEvent

WHERE TargetInstance ISA "Win32_NTLogEvent"

GROUP WITHIN 600 BY TargetInstance.SourceName

HAVING NumberOfEvents > 25