HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Összegzés készítése a COMPUTE feltétellel


5. rész

Példaprogram letöltése

1582 bájt

A Transact-SQL SELECT utasítás COMPUTE feltétele segítségével többféle összegzést, részösszeg képzést végezhetünk. Az összegző eredményeket külön kapjuk az eredménytáblától, egy újabb eredményként. Cikkünkben áttekintjük a funkció felhasználási lehetőségeit.

A COMPUTE segítségével összegző sort tudunk készíteni az eredménytáblához. Amikor a BY kulcsszót is használjuk, akkor a COMPUTE létrehoz megszakításokat és részösszegeket. Mindkét lehetőséget – BY nélküli, és vele együtt használatos COMPUTE feltételt – használhatjuk egyazon lekérdezésben.
Szintaxis
[ COMPUTE 
{ { AVG | COUNT | MAX | MIN | STDEV | STDEVP 
| VAR | VARP | SUM } 
( expression ) } [ ,...n ] 
[ BY expression [ ,...n ] ] ]
Paraméterek
AVG | COUNT | MAX | MIN | STDEV | STDEVP | VAR | VARP | SUM
Az összegzést határozzák meg. Ezek a sorösszegző függvények használhatók a COMPUTE feltétellel együtt:
Sorösszegző függvény Eredmény
AVG A numerikus kifejezés értékek átlaga
COUNT A lekérdezett sorok száma
MAX A legnagyobb érték a kifejezésben
MIN A legkisebb érték a kifejezésben
STDEV Statisztikai standard szórás minden értékre a kifejezésben
STDEVP Statisztikai standard szórás populációja minden értékre a kifejezésben
SUM Minden érték összege a kifejezésben
VAR Statisztikai eltérés minden értékre a kifejezésben
VARP Statisztikai eltérés populációja minden értékre a kifejezésben
Nem egyenértékű a COUNT(*) használatával. Hogy a GROUP BY és a COUNT(*) által készített összegző információt megtaláljuk, használjuk a COMPUTE kulcsszót BY nélkül. A függvény figyelmen kívül hagyja a null értékeket.
A DISTINCT kulcsszó nem engedélyezett, ha a COMPUTE segítségével sorösszegző függvényeket adunk meg. Amikor hozzáadunk, vagy átlagolunk integer értéket, az SQL szerver az eredményt int értékként kezeli, akár tinyint vagy smallint az oszlop típusa.
( expression )
Egy kifejezés, mint például az oszlop neve, amelyre a számítást kezdeményezzük. A kifejezésnek meg kell jelennie az oszlop felsorolásban, és azonosnak kell lennie a felsorolásban lévő elemmel. Egy oszlop alias nem használható a kifejezésen belül.
ntext, text, vagy image típus nem használható a COMPUTE vagy COMPUTE BY feltétellel.
BY expression
Létrehoz megszakításokat és részösszegeket. A kifejezés egy pontos másolata egy ORDER BY kifejezésnek, a megfeleltetett ORDER BY feltételben. Ez leginkább oszlop név vagy alias. Több kifejezés is megadható. Több kifejezés felsorolása a BY után, alcsoportokra tördeli a csoportokat és végrehajtja az összegző függvényt a csoportosítás valamennyi szintjén.
Ha COMPUTE BY-t használunk, akkor az ORDER BY feltételt is használnunk kell. A kifejezéseknek azonosaknak kell lenniük, vagy egy részüket fel kell sorolni az ORDER BY után, egyazon sorrendben.
COMPUTE használata esetén az oszlop lista sorrendje felülbírálja a COMPUTE összegző függvények sorrendjét. Fejlesztőknek figyelniük kell erre a szükségszerűségre, hogy az eredményeket megfelelő sorrendbe tegyék.
A COMPUTE feltételt nem használhatjuk SELECT INTO utasításban, ugyanis ezek az utasítások táblákat hoznak létre és az összegző sorok nem tárolhatók az adatbázisban. Emiatt bármilyen számítás a COMPUTE feltételben nem látszik a SELECT INTO által létrehozott új táblában.
Nem használhatjuk a COMPUTE feltételt akkor sem, ha egy DECLARE CURSOR utasítás része.
Példák
A példákhoz a Northwind adatbázist használjuk.
SELECT SupplierID, UnitPrice
FROM Products
ORDER BY SupplierID
COMPUTE SUM(UnitPrice)
A termékek szállító szerinti listájában az értékeket mutatja meg, a végén pedig egy összeget képez.
SELECT SupplierID, UnitPrice
FROM Products
ORDER BY SupplierID
COMPUTE SUM(UnitPrice) BY SupplierID
Itt minden szállítóhoz részösszegeket kapunk.
SELECT SupplierID, SUM(UnitPrice)
FROM Products
GROUP BY SupplierID
A COMPUTE BY funkció helyett használhatjuk a GROUP BY feltételt, amely egy eredményhalmazban jeleníti meg a csoportösszegeket.
SELECT SupplierID, CategoryID, UnitPrice
FROM Products
ORDER BY SupplierID, CategoryID
COMPUTE SUM(UnitPrice) BY SupplierID, CategoryID
Az utolsó példában többszörös csoportosításra láthatunk példát, itt a szállítókon belül kategóriák szerint is képződik részösszeg.

Cikksorozat

#IDKategóriaCikk címeSorozat
3643DelphiFormEditor1. rész
3689DelphiProject és modul információk2. rész
3719DelphiMegnyitás, mentés3. rész
3749DelphiKódszerkesztő4. rész
3778DelphiForráskód írása, olvasása5. rész
3809DelphiInterfész a kódszerkesztő ablakhoz6. rész
3839DelphiKijelölt blokkok7. rész
3869DelphiA buffer beállításai8. rész
3899DelphiKörnyezeti és Project opciók9. rész
3929DelphiKurzor a kódszerkesztőben10. rész
3959DelphiKeresés és csere beállításai11. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Windows Software Offline 2003 évkönyv 324. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |