Csoportosítás (Transact-SQL)

A GROUP BY záradék két szintaxis kompatibilis az ISO és összeegyeztethetetlen az ISO. Minden egyes SELECT lehet használni csak egy típust szintaxis. Minden új fejlemények használni kompatibilis az ISO szintaxis. Syntax összeegyeztethetetlen ISO, annak biztosítására szolgál, visszafelé kompatibilitás.

Ebben a részben a GROUP BY tagmondat lehet leírni, mint az általános vagy egyszerű.

Az összes ajánlat GROUP BY szerkezetet tartalmaz készleteinek csoportosításával, kocka, ROLLUP kockával és ROLLUP.

GROUP BY egyszerű mondat nem tartalmazza az építési készleteinek csoportosításával, kocka, ROLLUP kockával és ROLLUP. Bid GROUP BY (), hogy meghatározzuk a végösszeg tekinthető egy egyszerű mondat GROUP BY.

Forming egy sort minden egyes egyedi kombinációja értékek (a, b, c). (A, B). (A, C). (B, C). (A). (B) és (c) részöszegekkel minden egyes sorban, és a teljes sorösszeg.

Impresszum CUBE nem függ az oszlopok sorrendjének.

Azon személyek száma, csoportosítása adatokat egy kérés. Statisztikai feldolgozás végrehajtása csak ezeknek a csoportoknak, de nem teljes körű statisztikai adatok keresztül generált struktúrák CUBE vagy ROLLUP. Eredmények egyenértékű, hogy képződnek UNION ALL szerkezetű ezeknek a csoportoknak. Tervezés készleteinek csoportosításával lehet egyetlen elemet vagy elemek listáját. GROUPING SETS A design említhetjük csoportosulás, egyenértékű visszatér ROLLUP tervezési vagy kocka. Példák cm. Ekvivalensek részén készleteinek csoportosításával. <Список элементов группирующего набора> vagy tartalmazhat ROLLUP CUBE szerkezetet.

Üres csoport generál összesen.

A szintaxis, amely összeegyeztethetetlen az ISO

A jövőben változata a Microsoft SQL Server, ez a funkció eltávolításra kerül. Ne használja ezt a funkciót az új fejlesztési munka és a terv módosítására alkalmazásoknál, ahol alkalmazzák. Ez magában foglalja az összes csoport és eredmény határozza meg (még azok a vonalak), amelyek megfelelnek a keresési feltételnek a WHERE záradékot. Ha megadja a ALL érv, a gyűjtő oszlopok csoportok, amelyek nem felelnek meg a keresési feltételt NULL. ALL érv nem rendelhető kocka vagy ROLLUP szereplők.

GROUP BY ALL nem támogatja a javaslatot, kéri, hogy távoli asztal, ha a lekérdezés WHERE záradék is jelen van. Alkalmazása Proposition GROUP BY ALL oszlopokon FILESTREAM attribútum eredményez hibát.

Kifejezés. amelynél az egyesülés végezzük. group_by_expression érv is hívják oszlopon egyesülés. Argumentum group_by kifejezés lehet egy oszlopra vagy egy nem statisztikai kifejezés, amely utal az oszlop visszatért tulajdon. Oszlop alias meghatározott SELECT listában nem lehet használni, amikor meghatározza a csoportosulás oszlopot.

Az oszlopok típusú szöveget. ntext, és a kép nem lehet használni az érv group_by_expression.

Pályázati GROUP BY nem tartalmazó szereplők CUBE vagy ROLLUP, az elemek száma oszlopok group_by_expression korlátozott méretű GROUP BY, statisztikailag feldolgozott értékek és oszlopai szerepel a lekérdezésben. Ez magyarázza a korlátozott közbenső munkalap mérete (8060 bájt) tárolásához szükséges közbenső lekérdezés eredményét. Amikor megadja CUBE vagy ROLLUP maximális megengedhető kifejezések 12 csoportosítása.

Módszerek az XML adattípust nem lehet meghatározni, közvetlenül az érvelés group_by_expression. Ehelyett meg kell hozzon létre egy linket egy egyedi funkció, amely magában foglalja módszerek az XML adattípust, vagy utal a számított oszlop, amely ezeket a technikákat.

A jövőben változata a Microsoft SQL Server, ez a funkció eltávolításra kerül. Ne használja ezt a funkciót az új fejlesztési munka és a terv módosítására alkalmazásoknál, ahol alkalmazzák. Ez azt jelzi, hogy amellett, hogy amennyiben sor GROUP BY, szerepelnek az eredmény meg összefoglaló sorok. GROUP BY fősorban visszakerül minden lehetséges kombinációját csoportok és alcsoportok az eredmény meg. Annak eldöntésére, hogy a NULL értékeket az eredmény meg van összértékének GROUP BY, használja a csoportosító szerepet.

A sorok száma pivot az eredményhalmaz határozza meg az oszlopok számát tartalmazza az ajánlat GROUP BY. Mivel CUBE operátor visszaadja az összes lehetséges kombinációját csoportok és alcsoportok, a sorok száma azonos, függetlenül attól, hogy az előre meghatározott sorrendben csoportosító oszlopok.

A jövőben változata a Microsoft SQL Server, ez a funkció eltávolításra kerül. Ne használja ezt a funkciót az új fejlesztési munka és a terv módosítására alkalmazásoknál, ahol alkalmazzák. Ez azt jelzi, hogy amellett, hogy amennyiben sor GROUP BY, szerepelnek az eredmény meg összefoglaló sorok. Csoportok -ról hierarchikus sorrendben, a legalacsonyabb szinten a csoport, és befejezve a tetején. A hierarchia a csoport határozza meg a sorrendet, amely az oszlopok vonatkozásában definiáljuk amely csoportosítás. Sorrendjének megváltoztatása az oszlopok amely csoportosítás végezzük, ez hatással lehet a sorok számát az eredményhalmaz.

Statisztikai számítások kulcsszó DISTINCT, például AVG (DISTINCT oszlop_neve), COUNT (DISTINCT oszlop_neve) és a SUM (DISTINCT oszlop_neve), alkalmazásával CUBE és ROLLUP nem támogatott. Ha használják őket, a komponenseket az SQL Server Database Engine hibaüzenetet jelenít meg, és törli a kérést.

Ha a SELECT <список выбора> közé összesítő függvények, GROUP BY utasítás kiszámítja összefoglaló értékek az egyes csoportokban. (Ezek az úgynevezett vektor aggregátumok.)

A sorok, amelyek nem felelnek meg a feltételeknek a WHERE eltávolítjuk, mielőtt bármilyen csoportosítás műveleteket.

HAVING használjuk a GROUP BY záradék szűrni csoportok az eredmény meg.

A használata GROUP BY záradék nem rendeli az eredmény meg. Rendezni az eredmény meg, akkor kell használni az ajánlat ORDER BY.

Ha a csoportosítás oszlop NULL értékeket, ezek tekinthető egyenlőnek, és kerülnek egy csoportba.

Nem tudja használni a GROUP BY záradékot egy alias helyett a oszlop neve az AS kikötés, ha nem helyettesíti az alias nevét egy oszlop a származtatott tábla a FROM záradék.

Ismétlődő készleteinek csoportosításával csoportosításában betűkészletek listája nem szüntetik meg. Ismétlődő készleteinek csoportosításával akkor képezhetünk, ha egy oszlopot expressziós van megadva egynél többször, vagy ha szerepel a listán az oszlop expressziós kialakítva tervezési kocka vagy ROLLUP a GROUPING SETS listát.

A ROLLUP konstrukciók, kocka, és GROUPING SETS statisztikai függvények támogatott kulcsszó DISTINCT, például AVG (DISTINCT oszlop_neve), COUNT (DISTINCT oszlop_neve) és a SUM (DISTINCT oszlop_neve).

Tervezés ROLLUP, kocka, és a csoportosítás készleteket nem lehet meghatározott egy indexelt nézet.

Rendelkező konstrukciókat GROUP BY, vagy nem tud közvetlenül felhasználható ntext típusú oszlopokat. szöveg vagy kép. Ezek az oszlopok is használható érveket a visszatérő függvények értéke egy másik adat típusú, mint a substring () és a CAST ().

XML adattípus módszerek nem lehet meghatározni, közvetlenül a argumentum . Ehelyett meg kell hozzon létre egy linket egy egyedi funkció, amely magában foglalja módszerek az XML adattípust, vagy utal a számított oszlop, amely ezeket a technikákat.

GROUP BY záradék korlátozások szerkezetek készleteinek csoportosításával, ROLLUP és CUBE

szintaxis korlátozások

Nem tudja használni a tervezési készleteinek csoportosításával záradék a GROUP BY, ha azok nem tartoznak a csoportosulás betűkészletek listája. Például, a forma GROUP BY C1, (C2. Cn) érvénytelen, de az űrlap GROUP csoportosításával készletek (C1, (C2. Cn)) megengedett.

Nem tudja használni a kulcsszavakat készleteinek csoportosításával belül GROUPING SETS konstrukciók magukat. Például, a kifejezés GROUP csoportosításával készletek (C1, készleteinek csoportosításával (C2, C3)) elfogadhatatlan.

A GROUP BY záradék a kulcsszavak ROLLUP, kocka, vagy készleteinek csoportosításával nem tudja használni a kulcsszavakat ALL kockával és ROLLUP összeegyeztethetetlen az ISO.

mérethatárok

Az egyszerű mondat GROUP BY kifejezésből nincs korlátozva.

A javaslatokat GROUP BY, amelyben kulcsszavak használatosak ROLLUP, kocka, vagy készleteinek csoportosításával, a maximális számú kifejezések 32, és a maximális számú készleteinek csoportosításával, hogy létre lehet hozni egyenlő 4096 (2 12). A következő példa sikertelen, mert a GROUP BY záradék túl bonyolult.

A következő példák vannak kialakítva a 8192 (2 13) készleteinek csoportosításával.

Használata készleteinek csoportosításával a GROUP BY záradék elfogadhatatlan, ha azok nem része egy explicit listája készleteinek csoportosításával. Például a javaslat GROUP BY Column1 (COLUMN2. ColumnN) engedélyezett a standard, de nem az SQL Server. Lehet használni GROUP BY C1, készleteinek csoportosításával ((COLUMN2. ColumnN)) vagy csoport Column1, COLUMN2. ColumnN. Ezek az utasítások szemantikailag egyenértékű az előző példában kínál GROUP BY. Ezzel elkerülhető az a tévedés lehetôsége kínál GROUP BY Column1 (COLUMN2. ColumnN), mint a GROUP BY C1, készleteinek csoportosításával ((COLUMN2. ColumnN)). Ez az utasítás nem szemantikailag ekvivalens.

Nem tudja használni a kulcsszavakat GROUP BY [ALL / KÜLÖNÁLLÓ] általában GROUP BY záradék, illetve az építési készleteinek csoportosításával, ROLLUP, CUBE kockával vagy ROLLUP. ALL kulcsszó az alapértelmezett, és be van állítva hallgatólagosan.

Összehasonlítása támogatott funkciók GROUP BY záradék

Az alábbi táblázat ismerteti a támogatott funkciókat GROUP BY záradék alapján a SQL Server és az adatbázis kompatibilitási szintet.

Kapcsolódó cikkek