Toplama İşlevleri
Toplama işlevi, bir değer kümesi üzerinde hesaplama yapar ve bir değer döndürür. Bunun yapılması, çok küçük ek yüke sahip çok düzeyli gruplar için özet istatistikler oluşturmayı mümkün kılar.
Toplama İşlevleri Hakkında
Windows Search Yapılandırılmış Sorgu Dili'ndeki (SQL) toplama işlevleri aşağıdaki söz dizimine sahiptir:
AGGREGATE <function> [AS <label>] [,<function> [AS <label>]]*
İşlev bölümü aşağıdaki işlevlerden ve söz dizimlerinden herhangi birini içerebilir:
Fonksiyon | Açıklama |
---|---|
AVG(<sütun>) | Bir gruptaki değerlerin ortalamasını döndürür. Yalnızca sayılar için geçerlidir. |
BYFREQUENCY(<sütun>, <N>) | Gruptaki sonuçlardan en sık kullanılan N sütun değerlerini döndürür. Ayrıca, her değerin kaç kez oluştuğunun sayısını ve döndürülen her değeri içeren sonuçlar için belge tanımlayıcılarını içerir. |
CHILDCOUNT() | Bir gruptaki öğelerin sayısını döndürür (alt gruplar hariç). Birden çok gruplandırma düzeyi varsa, bu, anlık alt grupların sayısını döndürür. |
COUNT() | Bir gruptaki ve tüm alt gruplardaki öğelerin sayısını döndürür. |
DATERANGE(<sütun>) | Grup sonuçları grubunda bulunan sütun değerlerinin alt ve üst sınırlarını döndürür. Yalnızca dosya zamanı özellikleri için geçerlidir. |
FIRST(<sütun>, <N>) | Grupta bulunan yaprak sonuçlarından ilk N sütun değerlerini döndürür. |
MAX(<sütun>) | İfadedeki en büyük değeri döndürür. Yalnızca sayılar veya tarihler için geçerlidir. |
MIN(<sütun>) | İfadedeki en düşük değeri döndürür. Yalnızca sayılar veya tarihler için geçerlidir. |
REPRESENTATIVEOF(<sütun>, <idRepresentative>, <N>) | Her biri benzersiz sütun değerine sahip sonuç alt kümelerinden birinden seçilen N idRepresentative değerlerini döndürür. Her değer idRepresentative değerine sahip bir belge tanımlayıcısı ile de döndürülür. |
TOPLA(<sütun>) | Bir gruptaki değerlerin toplamını döndürür. Yalnızca sayılar için geçerlidir. |
Not
Toplamalar tek tek sütunlar olarak döndürülür. Bileşik türler olarak döndürülen ByFrequency, First, DateRange ve RepresentativeOf dışında çoğunlukla basit türlerdir.
Toplamalar için herhangi bir sayısal sütunu veya tarih sütununu kullanabilirsiniz; yalnızca SELECT yan tümcesindekileri kullanamazsınız. Ancak, toplamaları gruplandıramazsınız. Geçirilen sütun bağımsız değişkeni sayısal veya tarih türünde değilse söz dizimi hatası döndürülür.
Etiket bölümü isteğe bağlıdır ve etiket için daha okunabilir bir diğer ad sağlar. Diğer ad etiketi eklemezseniz, Windows Search işlevi ve sütun adını bir etikete dönüştürür. Örneğin, MAX(System.Document.WordCount) MAX_SystemDocumentWordCount olur.
Çok Düzeyli Gruplar ve Sayma
Toplamalar yapraklar üzerinde tanımlanır ve yinelenir. Toplama, alt gruplarının alt grupları yerine onu tanımlayan grubun (belgeler) yapraklarını giriş olarak alır. Bu işlev, çok düzeyli gruplandırma olarak adlandırılır.
Yapraklar üzerinde tanımlanan ve çoğaltılan toplamalara ek olarak, bunlar yalnızca bir kez sayılır. Aynı belge bir grup altında birden çok kez temsil edilebileceğinden, toplamalar belgeyi yalnızca bir kez dikkate alabilir. Aşağıdaki grafikte bu kavram gösterilmektedir.
Toplamların yapraklar üzerinde tanımlandığını ve çoğaltıldığını ve yalnızca bir kez sayıldığını gösteren
Toplama Örnekleri
GROUP ON yan tümcesindeki toplama işlevlerine örnekler aşağıda verilmiştir:
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')))
Dönüş Değeri
Dönüş değeri, satır kümesinde belirtilen diğer adlar olarak veya diğer ad etiketi belirtilmemişse "Toplamalar" olarak özel bir özellik olarak bulunan bir değişkendir.