次の方法で共有


GROUP 句

GROUP 句を使用すると、WMI はイベントのグループを表す 1 つの通知を生成します。 代表的な通知は、__AggregateEvent システム クラスのインスタンスです。 __AggregateEvent システム クラスには、RepresentativeNumberOfEventsの 2 つのプロパティが含まれています。 代表 プロパティは、WITHIN 句で指定されたグループ化間隔中に受信したインスタンスの 1 つを含む埋め込みオブジェクトです。 たとえば、インスタンス変更イベントを通知するために集計イベントが生成された場合、Representative には、__InstanceModificationEvent クラスの 1 つのインスタンスが含まれます。 NumberOfEvents プロパティには、グループ化間隔中に受信したイベントの数が含まれます。 グループ化間隔は、WMI が同様のイベントを収集する最初のイベントを受信した後の期間を指定します。

GROUP 句には、グループ化間隔を指定する WITHIN 句を含める必要があり、BY キーワードまたは HAVING キーワード、またはその両方を含めることができます。 GROUP 句は、次に示すように WHERE 句の後に配置されます。

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

EventClass 値はイベントがメンバーであるイベント クラスであり、 は通知が必要なプロパティの値です。 間隔は、最初のイベントを受信した後のグループ化間隔を表す符号なし整数です。 符号なし整数は秒数です。 プロパティ リストは、イベント クラスに含まれる 1 つ以上のプロパティのコンマ区切りのリストです。演算子 は任意の関係演算子です。整数 は、イベントの数を示す符号なし 32 ビット整数です。

GROUP 句を使用する場合、WHERE、BY、HAVING 句は省略可能です。

GROUP 句を基本的に使用すると、最初のイベントの受信時に開始される時間間隔内のイベントのグループ化が要求される場合があります。 たとえば、次のクエリでは、5 分以内に送信されたすべての電子メール イベントがグループ化されます。 永続的なコンシューマーは、新しいメールが受信されるたびにユーザーをページングするのではなく、このクエリを使用して、過去 5 分以内に新しいメールが受信された場合にのみユーザーに通知することがあります。

SELECT * FROM EmailEvent GROUP WITHIN 300

より詳細な情報が必要な場合は、イベント クラスの 1 つ以上のプロパティでイベントをグループ化できます。 次のクエリでは、電子メール イベントを、Sender プロパティで同じ値を持つ他のイベントと組み合わせることを要求します。

SELECT * FROM EmailEvent GROUP WITHIN 300 BY Sender

WHERE 句を追加することで、さらに詳細なレベルを実現できます。 たとえば、次のクエリは、過去 10 分以内に到着した特定の送信者からの新しい電子メールを、Importance プロパティで同じ値を持つ他のイベントと組み合わせてユーザーに通知します。

SELECT * FROM EventClass WHERE Sender = "MyBoss" 
  GROUP WITHIN 300 BY Importance