Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A CSOPORT BE... FÖLÖTT... az utasítás egy hierarchikus sorkészletet ad vissza, amelyben a keresési eredmények adott oszlop és választható csoportosítási tartományok alapján csoportokra vannak osztva. Ha a System.Kind oszlopra csoportosít, az eredményhalmaz több csoportra oszlik: egy a dokumentumokhoz, egyet a kommunikációhoz stb. Ha System.Size és a csoporttartomány 100 KB, az eredményhalmaz három csoportra van osztva: 100 KB < méretű elemek, >= 100 KB méretű elemek és méretérték nélküli elemek. A csoportosításokat függvényekkel is összesítheti.
Ez a témakör a következő témákat ismerteti:
- szintaxis
- csoporttartományok
- címkézési csoportok
- Rendezési csoportok
- beágyazott csoportok
- csoportosítás vektortulajdonságokra
- További példák
- Kapcsolódó témakörök
Szintaxis
A GROUP ON ... FÖLÖTT... az utasítás szintaxisa a következő:
GROUP ON <column> ['['<group ranges>']']]
[AGGREGATE <aggregate_function>]
[ORDER BY <column> [<direction>]] | [ORDER IN GROUP '<group name>' BY <column> [<direction>]]
OVER (GROUP ON... | SELECT... ] )
ahol a csoportosítási tartományok a következőképpen vannak definiálva:
<group ranges> := <range limit> [/'<label>'] | <range limit> [/'<label>'], <group ranges>
<range limit> := (<number> | <date> | '<string>' | BEFORE('<string>') | AFTER('<string>'))
A GROUP ON <oszlop> lehet a tulajdonságtároló egyik tulajdonságának rendszeres vagy tagolt azonosítója.
Az opcionális <csoporttartomány-> egy vagy több érték (szám, dátum vagy sztring) listája, amelyet az eredmények csoportokra osztásához használnak. A <tartománykorlát> azonosít egy osztáspontot a visszaadott eredményhalmazban, a
Az eredmények első csoportja olyan elemeket tartalmaz, amelyek a megadott tulajdonsághoz a lehető legkisebb értékkel rendelkeznek, de nem tartalmazzák az első tartománykorlátot. Ez a csoport a MINVALUE kulcsszóval hivatkozható. A második csoport a tartománykorlát-meghatározóval hivatkozható, és magában foglalja azokat az elemeket, amelyeknek a megadott tulajdonság értéke egyenlő vagy nagyobb, mint a tartománykorlát. Minden olyan elem, amely nem rendelkezik a megadott tulajdonság értékével, utoljára lesz visszaadva, és a NULL kulcsszóval hivatkozhat rá.
Például: a System.DateCreated tulajdonsághoz tartozó "2006-01-01" tartománykorlát a 2006.01.01. (MINVALUE csoport), a 2006.01.01-01. dátummal (2006-01-01 csoport) és dátum nélküli elemekkel (NULL csoport).
Az eredmények az egyes csoportokon belül alapértelmezés szerint a GROUP ON oszlop értékei szerint vannak rendezve. Az opcionális ORDER BY záradék a növekvő (alacsonytól a magasig) ASC vagy a DESC irányjelölője lehet csökkenő (magastól alacsonyig), és a ORDER IN GROUP BY záradék különböző szabályokkal rendelheti meg az egyes csoportokat. További információt az alábbi Rendelési csoportok című szakaszban talál.
Csoporttartományok
Az alábbi táblázat bemutatja, hogyan vannak az eredmények csoportokra osztva a tartománykorlátok alapján:
| Példa (<oszlop> [csoporttartományok]) | Eredmény |
|---|---|
| System.Size [1000, 5000] | Az eredmények négy gyűjtőbe vannak csoportosítva: MINVALUE: Méret < 1000 1000: 1000 <= Méret < 5000 5000: Méret >= 5000 NULL: Nincs érték a mérethez |
| System.Author [BEFORE('m'),AFTER('r')] | Az eredmények négy gyűjtőbe vannak csoportosítva: MINVALUE: Author < character before "m" m: karakter előtt "m" <= Szerző < karakter után "r" r: karakter után "r" <= Szerző NULL: Nincs érték a szerző számára |
| System.Author [MINVALUE/'a to l',"m"/'m to z] | Az eredmények három gyűjtőbe vannak csoportosítva: a–l: Szerző < "m" m–z: "m" <= Szerző NULL: Nincs érték a szerző számára |
| System.DateCreated [2005-1-01','2006-6-01] | Az eredmények négy gyűjtőbe vannak csoportosítva: MINVALUE: DateCreated < 2005-1-01 2005-1-01: 2005-1-01 <= DateCreated < 2006-6-01 2006-1-01: DateCreated >= 2006-6-01 NULL: Nincs érték a DateCreated értékhez |
Fontos
Helytelen: GROUP ON System.Author['m','z','a']
Helyes: GROUP ON System.Author['a','m','z']
Címkézési csoportok
Az olvashatóság javítása érdekében a következő szintaxissal címkézheti a csoportokat:
GROUP ON <column> [<range limit>/'<label>',<range limit>/'<label>']
A címke perjellel elválasztva van a tartománykorláttól, és egyetlen idézőjelben van ellátva. Ha nem ad meg címkét, a csoport neve a tartománykorlát sztringje.
Az alábbiakban egy példa látható a címkézési csoportokra:
GROUP ON System.Size [(MINVALUE/'Small','100')/'Medium','50000'/'Large']
OVER (SELECT System.Size FROM SystemIndex)
A Windows 7 vagy újabb verziókban egy általános [EGYÉB] címkével is kombinálhat több csoportosítási tartományt. Az ezzel a címkével azonosított összes csoport eredményei egyetlen csoportba lesznek kombinálva ezzel a címkével. Ez az eredménycsoport az összes többi csoport után lesz visszaadva, kivéve a NULL csoportot. A NULL csoport olyan elemek eredményeit tartalmazza, amelyek nem rendelkeznek a megadott tulajdonság értékével. A Windows 7 előtt az [EGYÉB] címke minden más csoportcímkéhez hasonlóan lesz kezelve.
Az alábbi kód az [OTHER] címkét használja a Windows 7-ben vagy újabb rendszerben létrehozott csoportokhoz:
GROUP ON System.Author ['0', 'A'/'[OTHER]', 'I', 'Q', 'W'/'[OTHER]', 'Y']
OVER (SELECT System.DateCreated FROM SystemIndex)
Az alábbi táblázat azokat a csoportokat mutatja be, amelyeket az előző csoportosítási kód hozna létre Windows 7 vagy újabb rendszerben.
| Csoport | System.Author | System.FileName |
|---|---|---|
| 0 | 1Bill | Lorem.docx |
| Q | Királynő | Ipsum.docx |
| Vörösbegy | dolor.docx | |
| Y | Zara | amet.docx |
| [EGYÉB] | Abner | nonummy.docx |
| Úszó | laoreet.docx | |
| Xaria | magna.docx | |
| NULL | aliquam.docx |
Csoportok megrendelése
A csoportok elemeit háromféleképpen rendezheti:
- Alapértelmezett rendezés: Ha másként nem adja meg, az eredményeket a GROUP ON oszlop értékei rendezik növekvő sorrendben.
- ORDER BY: Az ORDER BY záradékban csökkenő sorrendet adhat meg. Az eredményeket a GROUP ON oszlop szerint kell rendeznie.
- SORREND CSOPORTOSÍTÁS SZERINT: Minden csoporthoz megadhat egy másik sorrendet. Ha a System.Kind csoportosítja, akkor a System.Music.Artist System.Author és zene alapján is megrendelheti a dokumentumokat.
Az eredmények sorrendjéről további információt a ORDER BY záradék és ORDER IN GROUP Záradék referenciaoldalakon talál.
Csoportok beágyazása
Több GROUP ON záradékkal is beágyazhat csoportokat. A lekérdezésben megadott sorrend közvetlenül tükröződik a kimeneti csoport hierarchiájában, ahogy az az alábbi példában is látható.
GROUP ON <System.Kind>
OVER (GROUP ON <System.Author>
OVER (SELECT <System.DateCreated>))
| System.Kind | System.Author | System.DateCreated |
|---|---|---|
| Dokumentumok | Willa | 2006-01-02 |
| 2006-01-05 | ||
| Zara | 2007-06-02 | |
| 2007-09-10 | ||
| távközlés | Abner | 2006-04-16 |
| Jean | 2007-02-20 | |
| Willa | 2006-10-15 | |
| Zara | 2008-01-02 |
Csoportosítás vektortulajdonságokon
A vektortulajdonságok csoportosítása, amelyek egyszerre egy vagy több értéket tartalmazhatnak, alapértelmezés szerint egyenként hasonlítják össze a vektorértékeket. Ha például van egy dokumentum, Lorem.docx, és a System.Author tulajdonság "Theresa; Zara" és egy másik dokumentum, Ipsum.docxa System.Author tulajdonsággal "Zara" néven, a lekérdezés az itt látható módon két csoportban adja vissza az eredményt:
GROUP ON <System.Author>
OVER (SELECT <System.FileName>)
| System.Author | System.FileName |
|---|---|
| Terézia | Lorem.docx |
| Zara | Lorem.docx |
| Ipsum.docx |
Mint látható, a vektortulajdonságokra való csoportosítás ismétlődő sorokat ad vissza. Lorem.docx kétszer jelenik meg, mert két szerzője van.
További példák
GROUP ON System.Photo.ISOSpeed [0,10,100]
OVER (SELECT System.ItemName, System.Size, System.ItemUrl FROM SystemIndex)
GROUP ON System.DateCreated['2005/01/01 00:00:00', '2005/12/30 23:00:00']
OVER (SELECT System.ItemName, System.Size, System.ItemUrl FROM SystemIndex)
GROUP ON System.Author ORDER BY System.Author DESC
OVER (GROUP ON System.DateCreated ORDER BY System.DateCreated ASC
OVER (SELECT System.FileName, System.DateCreated, System.Size FROM SystemIndex
WHERE CONTAINS(*, 'text')))
GROUP ON System.ItemName [before('a'), 'a', before ('c'), 'd', after('d')]
OVER (SELECT System.ItemName, System.ItemUrl FROM SystemIndex ORDER BY System.ItemName)
GROUP ON System.ItemNameDisplay ['a' / 'col_a','c' / 'col_c']
OVER (SELECT System.ItemNameDisplay FROM SystemIndex
ORDER BY System.ItemNameDisplay)
GROUP ON System.Size[1,2]
OVER (GROUP ON System.Author['a','f','mc','x']
OVER (GROUP ON System.DateCreated['2005/07/25 07:00:00', '2005/08/25 07:00:00']
ORDER BY System.DateCreated DESC
OVER (SELECT System.FileName FROM SystemIndex
WHERE CONTAINS('text'))))
Kapcsolódó témakörök