Sql integráció az adatok felhasználásával összesítő függvények

  • SQL ÖSSZEFOGLALÓ ADATOK összesítő függvények

    Ebben a fejezetben, akkor adja át a könnyű használat lekérdezéseket kivonat értékét az adatbázis (DB), és meghatározza, hogy ezek az értékek is használható információt szerezni tőlük. Ezt használja aggregátum (általánosító) függvénynek, amelyek értéke a csoport mezők és csökkenti azokat egyetlen érték.
    Meg fogja tanulni, hogyan kell használni ezeket a funkciókat, hogyan kell meghatározni az értékeket a csoport, amelyhez fogja alkalmazni, és hogyan kell meghatározni, hogy mely csoportok kiválasztott kimenet.
    Látni fogja, még a feltételeket, amelyek mellett lesz képes egyesíteni a mező értéke a kapott információkat egy lekérdezés.

    MI összesítő függvények?

    Lekérdezések képes egy általánosított csoport mező értékeket ugyanúgy, mint az értéke egy mezőt. Ezt úgy végezzük, aggregált funkciókat. Összesítő függvények egy egyedi értéket a teljes táblázatot csoport.

    Itt van egy lista ezeket a funkciókat:

    Számát adja meg a sorok vagy nem NULL mező értékeit kiválasztott kérelem. SUM termel számtani összege az összes kiválasztott értékek a pályán. AVG ad átlagosan az összes kiválasztott értékek a pályán. MAX adja a legnagyobb az összes kiválasztott értékek a pályán. MIN adja a legkisebb az összes kiválasztott értékek a pályán.

    Hogyan kell használni összesítő függvények?

    Összesített funkciókat használnak, mint a mezők nevét a SELECT záradék lekérdezésre, de egy kivétellel: vesznek mezőneveket érveket.

    Csak numerikus mezők használható SUM és az AVG.

    Mivel COUNT függvények, MAX és MIN lehet használni, és a numerikus és a karakter területeken.
    Amikor használják a karakter területek, MAX és MIN fogja lefordítani őket ASCII megfelelője, amely tájékoztatja, hogy MIN azt jelenti, az első és utolsó érték MAX ABC sorrendben (az alfabetikus rendezés tárgyaljuk részletesebben a 4. fejezetben).

    Ahhoz, hogy megtalálja az összeg minden a mi vásárlások a megrendelések tábla, tudjuk be a következő lekérdezést, a kimenetet 6.1 ábra:

    Ez természetesen eltér a kiválasztási mezőt amely visszaadja egyetlen értéket, függetlenül attól, hogy hány sort a táblázatban tárolt. Mivel ezen a területen, és összesítő függvények nem választható egyidejűleg, ha az ajánlat nem használják GROUP BY (később ismertetjük).

    Megtalálása átlagolt összege - mint a működését (kimenő e lekérdezés 6.2 ábrán látható):

    Egy különleges tulajdonság COUNT

    COUNT függvény némileg különbözik az összes többitől. Ez számít az értékek számát az oszlopban vagy sorban száma a táblázatban. Ha úgy találja, egy oszlop értéke, akkor használják a KÜLÖNÁLLÓ, a számlaszámokat, hogy különböző értékeket ezen a területen. Tudtuk használni, például számolni az eladók, ahogy az a jelen időt a megrendelések tábla (ábrán látható eredményt 6,3):

    USE különálló

    Figyeljük meg a fenti példa, hogy egy KÜLÖNÁLLÓ, majd a mező nevét, amelyre alkalmazzák, zárójelbe, de nem azonnal, miután a SELECT, mint korábban. Az ilyen használat KÜLÖNÁLLÓ COUNT, alkalmazva az egyes oszlopok, amelyek megkövetelik az ANSI szabvány, de sok program nem ír elő ilyen követelményt.

    Akkor végre több számlálás (COUNT) a mezőket KÜLÖNÁLLÓ egy kéréssel, amely, mint láttuk, a 3. fejezetben nem került sor, amikor kiválaszt egy sort használ különbözőek.
    KÜLÖNÁLLÓ lehet használni ezen a módon minden összesítő függvény, de leggyakrabban használatos a COUNT. MAX és MIN ez csak nem lesz semmilyen hatása, és az összeg és az AVG, akkor általában használni, hogy a kettős értékek, mivel a hatékonyabb általános és átlagos értéke az összes oszlopot.

    USE COUNT vonalak, nem az érték

    Kiszámításához a teljes sorok számát a táblázatban, használja COUNT függvény csillaggal helyett a mező nevét, mint ebben a példában, a kimenete, amely ábrán látható 6.4:

    COUNT csillaggal tartalmazza NULL, és másolatok; Emiatt KÜLÖNÁLLÓ nem lehet használni. KÜLÖNÁLLÓ képes nagyobb számban COUNT szakterület, amely eltávolítja az összes

    vonal, amely a redundáns adatok vagy NULL-e téren. KÜLÖNÁLLÓ nem alkalmazható c COUNT (*), mert nincs hatással egy jól kialakított és fenntartott adatbázisok. Az ilyen adatbázis nem lehet ilyen vonalak, hogy lenne egy teljesen üres, vagy másolatok (az első nem tartalmaz adatokat, és az utolsó teljesen redundáns). Ha még mindig nem teljesen üres vagy felesleges sor, akkor valószínűleg nem akarja számolni elrejteni, hogy információt.

    FORDULÓ ismétli az összesítő függvények

    Összesített funkciókat is (a legtöbb implementáció) használt érv ALL, ami elé kerül a neve a területen, mint a különálló, de az ellenkezőjét tartalmazzák ismétli. ANSI technikailag nem teszi lehetővé, hogy a gróf, de sok implementáció pihenni ezt a korlátozást.

    Közötti különbségek ALL * használata esetén a COUNT:

    • ALL használja a mező nevét érvként.
    • ALL nem számítható NULL értékeket.

    * Amíg egyetlen érv, hogy magában foglalja a NULL-értékeket, és ez csak a COUNT; funkciót, kivéve COUNT, figyelmen kívül hagyja NULL értékek minden esetben.

    A következő parancs száma (COUNT) száma nem-NULL értékek az értékelés területén a Vevők táblában (beleértve ismétlések):

    EGYSÉGEK, épült egy skalár kifejezést

    Előtte már használt összesítő függvények egyetlen mezőket érvként. Ön is használja összesítő függvények érveket, amelyek tagjai skalár kifejezések, amelyek egy vagy több mezőt. (Ha ezt megteszi, KÜLÖNÁLLÓ nem engedélyezett.)

    Tegyük fel, hogy a megrendelések tábla még egy oszlopot, amely tárolja az előző fennálló egyenleg (mező blnc) az egyes ügyfelek. Meg kell találni az aktuális egyenleget hozzáadásával felvásárlások összege az előző egyensúlyt.

    Megtalálható a legkiválóbb mérleg az alábbiak szerint:

    Minden egyes sor a táblázat tárolja a kérést, és blnc amt ehhez az ügyfélhez, és kiválasztani a legnagyobb érték, amely azt állapítja meg. Persze, amíg az ügyfelek több megrendelést a fennálló egyensúly külön értékeljük az egyes sorrendben. Elrendelheti egy későbbi időpontban lesz a legnagyobb fennálló egyensúlyt. Egyébként a régi egyensúlyt kell kiválasztani a fenti lekérdezés.

    Tény, hogy van egy nagy számú helyzetek SQL, ahol használhatja a skalártér vagy kifejezést helyett területeken, mint látni fogod a 7. fejezetben.

    GROUP BY záradék

    A GROUP BY záradék lehetővé teszi, hogy meghatározza egy részét az értékek egy adott területen tekintve a más területeken, és alkalmazza az aggregált függvény egy részét. Ez lehetővé teszi, hogy összekapcsolják mezők és összesítő függvények egy mondatban SELECT.

    Tegyük fel például, meg akarja találni a legnagyobb összeg az értékesítés által szerzett minden eladó. Tudod, hogy külön kérelmet minden egyes őket MAX (AMT) a Rendelések tábla minden mező értéke SNUM. GROUP BY azonban lehetővé teszik, hogy mindent egy parancsot:

    A kimenet erre a lekérdezés ábrán látható 6.5.

    GROUP BY vonatkozik összesítő függvények, függetlenül attól, hogy a sorozat a csoportok, amelyek által meghatározott érték mező egészére. Ebben az esetben, ahol az egyes csoportokhoz az összes sort ugyanazon a mező értékét SNUM, és a MAX funkció külön-külön alkalmazott minden egyes csoportban. Ez az érték a területet, amelyre a GROUP BY, van, definíció szerint, csak egy érték a kimeneti csoport ugyanúgy mint ahogy az összesítő függvény. Az eredmény a kompatibilitás, mely lehetővé teszi egységek és területek együttes ezen a módon.

    Ön is használja a GROUP BY több területen. Javítása a fenti példa, tegyük fel, hogy szeretné látni a legnagyobb összeg az értékesítés, az eladó megkapja minden egyes nap. Ehhez meg kell csoportosítani a Rendelések tábla dátum és az eladók használja MAX funkció minden egyes ilyen csoport:

    A kimenet erre a lekérdezés ábrán látható 6.6.

    Természetesen üres csoportok a nap, amikor a jelenlegi kereskedő nem volt megrendeléseket nem jelenik meg a kimeneten.

    HAVING

    Tegyük fel, hogy az előző példában, akkor csak látni a maximális mennyiségű vásárlások, amelyek értéke meghaladja $ 3000.00. Nem tudja használni összesítő függvények egy mondatot, ahol (ha nem használ segédlekérdezésként, lásd később), mert a predikátumok értékelik szempontjából egy sorban, és az összesített funkciók szempontjából értékelik csoportok sorban. Ez azt jelenti, hogy nem lesz képes tenni valamit, mint a következő:

    Ez az eltérés a szigorú értelmezését ANSI. Látni, hogy a maximális költsége akvizíció több mint $ 3000.00, akkor használja a HAVING.

    HAVING azon kritériumokat kell használni, hogy távolítsa el az egyes csoportok a kimeneti ugyanúgy, mint a WHERE záradék teszi az egyes vonalak.

    A helyes parancs a következő lenne:

    A kimenet ezt a kérést a 6. ábrán látható 7.

    Érvek a HAVING ugyanazokat a szabályokat követik, mint a SELECT záradék, amely a használó csapatok GROUP BY. Azt kellett volna ugyanazt az értéket a kimeneti csoport.

    A következő parancs tilos:

    Odate mező nem okozott vagyontárgyra, mert lehet, hogy (és van is) több mint egy érték kimeneti csoport. Annak elkerülése érdekében, egy ilyen helyzetben, a RENDELKEZŐ mondat csak utalnak egységek és kijelölt mező GROUP BY. Van egy jobb módja, ha a fenti lekérdezés (a kimenet ábra 6.8):

    Mint már korábban említettük, miután csak használni érveket, amelyek ugyanazt az értéket a kimeneti csoport. Majdnem egy hivatkozás összesítő függvények - a leggyakoribb, hanem a területen kiválasztott GROUP BY, szintén lehetséges. Például szeretnénk látni a legnagyobb megrendeléseket Serres és Rifkin:

    A kimenet erre a lekérdezés ábrán látható 6.9.

    DO nem kapcsolódik EGYSÉGEK

    A szigorú értelmezése az ANSI SQL, nem tudja használni a gép egységet. Tegyük fel, hogy szeretnénk megtudni, milyen nap volt a legnagyobb összeg az értékesítés. Ha mégis megpróbálja,

    Ezután a csapat valószínűleg el kell utasítani. (Egyes megvalósítások nem írja elő ezt a korlátozást, ami azért előnyös, mert a beágyazott aggregátumok nagyon hasznos lehet, még akkor is, ha azok kissé problémás.) A fenti parancs, például SUM kell alkalmazni minden egyes csoport mező Odate és MAX - minden csoportban, hogy egyetlen érték minden csoport számára. Azonban egy GROUP BY záradék azt jelenti, hogy nem kell egy sort nyomtat az egyes csoportok esetében területén Odate.

    Ön most a igényeket némileg eltérő. Az a képesség, hogy megkapja, nem csak súlyt helyeznek, nagyon erős. Ez azt jelenti, hogy nem kell nyomon követni bizonyos információkat, ha lehet megfogalmazni a lekérdezést, hogy értem. A lekérdezés kapsz percről percre eredményt, míg az asztal teljes vagy átlagos érték jó lesz csak egy ideig, miután annak módosítását. Ez nem azt sugallják, hogy az összesítő függvények teljesen helyettesítheti a szükséges követni információt, mint például, mint ez.

    Használhatja ezeket egységek értékeit csoportok, specifikus javaslat GROUP BY. Ezeknek a csoportoknak a mező értéke általában, és tartózkodjon a többi csoportot, amelyek a mező értéke egészét. Ugyanakkor, még predikátumok használnak, hogy melyik sorban az összesítő függvényt kell alkalmazni.

    Együttesen ezek a funkciók lehetővé teszik, hogy készítsen aggregátumok alapján jól meghatározott részhalmazát értékek terén. Akkor meg tudja határozni a további feltételek kizárását bizonyos csoportjainak eredmények azzal a javaslattal, birtoklás.

    Most, hogy lesz egy szakértő a lekérdezés termel értéket, megmutatjuk, 7. fejezet Cs # x0301; mit lehet csinálni az értékeket, amelyeket termel.

    MŰKÖDÉS SQL

    Kapcsolódó cikkek