Aracılığıyla paylaş


GROUP Yan Tümcesi

GROUP yan tümcesi WMI'nin bir olay grubunu temsil eden tek bir bildirim oluşturmasına neden olur. Temsili bildirim, __AggregateEvent sistem sınıfının bir örneğidir. __AggregateEvent sistem sınıfı iki özellik içerir: Temsilci ve NumberOfEvents. Temsilcisi özelliği, WITHIN yan tümcesinde belirtilen gruplandırma aralığı sırasında alınan örneklerden birini içeren ekli bir nesnedir. Örneğin, örnek değiştirme olaylarını bildirmek için bir toplama olayı oluşturulursa, Temsilci__InstanceModificationEvent sınıfının bir örneğini içerir. NumberOfEvents özelliği, gruplandırma aralığı sırasında alınan olayların sayısını içerir. Gruplandırma aralığı, ilk olay alındıktan sonra WMI'nin benzer olayları toplaması gereken süreyi belirtir.

GROUP yan tümcesi gruplandırma aralığını belirtmek için bir WITHIN yan tümcesi içermelidir ve BY veya HAVING anahtar sözcüğünü ya da her ikisini de içerebilir. GROUP yan tümcesi, aşağıda gösterildiği gibi WHERE yan tümcesinin arkasına yerleştirilir:

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

EventClass değeri, olayın üyesi olduğu olay sınıfıdır ve değeri, bildirimin gerekli olduğu özelliğin değeridir. Aralık, ilk olayı aldıktan sonra gruplandırma aralığını temsil eden işaretsiz bir tamsayıdır. İşaretsiz tamsayı bir saniye sayısıdır. Özellik listesi, olay sınıfına dahil edilen bir veya daha fazla özelliğin virgülle ayrılmış listesidir; işleç herhangi bir ilişkisel işleçtir; ve tamsayı, bir dizi olayı gösteren işaretsiz bir 32 bit tamsayıdır.

GROUP yan tümcesi kullanılırken WHERE, BY ve HAVING yan tümceleri isteğe bağlıdır.

GROUP yan tümcesinin temel bir kullanımı, ilk olay alındığında başlayan bir zaman aralığı içinde bir olay gruplandırma isteğinde bulunabilir. Örneğin, aşağıdaki sorgu 5 dakika içinde gönderilen tüm e-posta olaylarını gruplar. Her yeni e-posta alındığında kullanıcıyı sayfalandırmak yerine, kalıcı tüketici bu sorguyu yalnızca son 5 dakika içinde yeni e-posta alındığında kullanıcıyı bilgilendirmek için kullanabilir.

SELECT * FROM EmailEvent GROUP WITHIN 300

Daha ayrıntılı bilgi gerekiyorsa, olaylar olay sınıfının bir veya daha fazla özelliğine göre gruplandırılabilir. Aşağıdaki sorgu, e-posta olaylarının Sender özelliğinde aynı değere sahip diğer olaylarla birleştirilmelerini istemektedir:

SELECT * FROM EmailEvent GROUP WITHIN 300 BY Sender

WHERE yan tümcesi eklenerek yine de daha yüksek ayrıntı düzeyi elde edilebilir. Örneğin, aşağıdaki sorgu kullanıcıya son 10 dakika içinde gelen belirli bir gönderenden gelen yeni e-postayı Önem Derecesi özelliğinde aynı değere sahip diğer olaylarla birlikte bildirir:

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