összesítő függvények

Összegezve az eredményeket az információ az adatbázisban tárolt, SQL összesítő függvények állnak rendelkezésre. Aggregált függvény paraméterként egy oszlop adatai összességükben ezután egyetlen érték, ami egy bizonyos módon összegzi ezt az oszlopot.

Például, aggregált függvény AVG () veszi érvek oszlopon számok, és kiszámítja az átlagértéket.

Határozni az átlagos egy főre jutó jövedelme egy lakos Zelenograd, szükségünk van egy ilyen kérés:

SELECT 'átlagos jövedelem =', AVG (SUMD)

Az SQL, hat összesítő függvények, amelyek lehetővé teszik, hogy megkapjuk a különböző típusú összefoglaló adatok (1. ábra)

- SUM () összegét számolja az összes értéket szereplő oszlop;

- AVG () kiszámítja az átlagos között oszlopban levő értékek;

- MIN () közül a legkisebb az összes értéket az oszlopon lévő;

- MAX () a legnagyobb az összes értékét az oszlopon lévő;

- COUNT () megszámlálja az értékek az oszlopon lévő;

- COUNT (*) megszámolja a sorok számát a táblázatban a lekérdezés eredménye.

Az érv az összesítő függvényt lehet egy egyszerű oszlop nevét, mint az előző példában, vagy kifejezés, ahogyan az a következő lekérdezést, adja meg a kiszámítása jutó adó:

Amikor ezt a kérést, egy ideiglenes tartalmazó oszlopon értékek (SUMD * 0,13) minden egyes sora a táblázat SZEMÉLY, majd kiszámítja az átlagos értéke az idő oszlopban.

összesítő függvények

A jövedelem összegét az összes lakói Zelenograd lehet használatával számítható ki összesítő függvény SUM:

SELECT SUM (SUMD) emberről

Összesítő függvény is használható az eredmények kiszámításához az asztalon kapott eredmények összekötő több forrás táblákat. Például, lehet számítani a teljes bevétel, amelyet a forrásból származó lakói címmel „Támogatások”:

Eredménytartalék, HAVE_D

Ahol profit.Id = have_d.Id

Összesítő függvény MIN () és MAX () lehetővé teszi, hogy megtalálja, illetve a legkisebb és legnagyobb értékét a táblázatban. Így az oszlop tartalmazhat numerikus vagy string értékeket vagy az idő vagy dátum értékeket.

Például, akkor lehet meghatározni:

(A) A legalacsonyabb teljes jövedelem a lakosok, és a legnagyobb fizetendő adó:

SELECT MIN (SUMD), MAX (SUMD * 0,13)

(B) a születési dátum legrégebbi és a legfiatalabb lakói:

SELECT MIN (rdate), MAX (rdate)

(C) a névre, a név és apai legelső és a legutolsó lakói a lista ábécésorrendben:

SELECT MIN (FIO), MAX (FIO)

Amennyiben e összesítő függvények, emlékeztetni kell arra, hogy a számszerű adatokat összehasonlítjuk a szabályok számtani összehasonlítása dátumok fordul egymás (korábbi értéknapra tartják kevesebb, mint később), összehasonlítva a időintervallumok végezzük alapján azok időtartamát.

Ha a funkciót MIN () és MAX () a húr adatokat, az eredmény összehasonlítása két karakterfűzérek függ kódolási táblázat.

Összesített funkció COUNT () megszámlálja az értékeket egy bármilyen típusú oszlop:

(A) hány lakás az 1. kerületben?

SELECT COUNT (ADR), lapos WHERE ADR LIKE '% 1_ _-%'

(B) hány lakosok jövedelemforrás?

SELECT COUNT (DISTINCT NOM) FROM HAVE_D

(C) mennyi bevételt felhasznált források a lakók?

SELECT COUNT (DISTINCT ID), HAVE_D (DISTINCT kulcsszó jelzi, hogy a kiszámított nem ismétlődő értékek egy oszlopban).

Különleges összesítő függvény COUNT (*) számít az a táblázat sorai a találatok, és nem az adatot értékek:

(A) hány lakás a 2. kerületben?

SELECT COUNT (*) FROM lakást, ahol ADR LIKE '%, 2% __-'

(B), hogy mennyi bevétel források Ivanova Ivana Ivanovicha?

SELECT COUNT (*) FROM SZEMÉLY HAVE_D WHERE FIO = 'Ivanov Ivan Ivanovich' AND PERSON.NOM = HAVE_D.NOM

SELECT COUNT (*) FROM személy részéről, amennyiben az ADR = 'Zelenograd, 1001-1045'

Az egyik módja annak, hogy megértsük, hogyan kell futtatni egy összesen lekérdezés aggregált függvények benyújtja a lekérdezés végrehajtás két részre oszlik. Először határozza meg, hogyan kell lekérdezés nélkül működött összesítő függvények visszatérő többsornyi eredményeket. Akkor kell alkalmazni az aggregált funkciókat a lekérdezés eredményét, visszatérve a végleges szöveg.

Például, vegyük a következő komplex lekérdezés: ki az átlagos jutó teljes jövedelem, az összeg a teljes jövedelem lakosok, valamint forrásként nagy hozammal százalékában teljes jövedelem lakosok. A válasz ad az üzemeltető

SELECT AVG (SUMD), SUM (SUMD), (100 * AVG (pénz / SUMD)) emberről, nyereség, HAVE_D WHERE PERSON.NOM = HAVE_D.NOM ÉS HAVE_D.ID = PROFIT.ID

Anélkül összesítő függvények keresett nézne ki:

SELECT SUMD, SUMD, pénz / SUMD emberről, nyereség, HAVE_D WHERE PERSON.NOM = HAVE_D.NOM ÉS HAVE_D.ID = PROFIT.ID

és visszatér egy sorban eredményeket az egyes rezidens és a konkrét bevételi forrása. Összesített funkciókat egy tábla oszlopait az eredmények ennek lekérdezés egy egysoros táblázatot a végső eredményt.

Cserébe oszlopsorhoz neve helyett bármely oszlop, megadhat egy összesítő függvény. Például, lehet, hogy egy expressziós hogy foglalta vagy kivonódik értékek a két összesítő függvények:

SELECT MAX (SUMD) min volt (SUMD) emberről

Ugyanakkor egy összesítő függvény nem lehet érv egy összesítő függvény, azaz a Tilos beágyazott összesítő függvények.

Ezen túlmenően, a visszaadott oszlopok listájából nem tudja használni összesítő függvények és a szokásos oszlop nevét, mert nincs értelme, például:

SELECT FIO, SUM (SUMD) emberről

Itt az első elem a lista azt mutatja, hogy a DBMS, hogy hozzon létre egy táblázatot, amely áll több sort, és tartalmaznia kell egy sort minden lakója. A második elem kéri az adatbázis megszerzése egy eredményt érték, amely összege SUMD oszlopot. Ez a két irány egymással ellentétes, ami hiba.

Emiatt akár az összes hivatkozást, hogy az oszlopok vissza az oszlop listán kell lennie érveket összesítő függvények, vagy a lista ne legyen összesítő függvény.

Ez nem vonatkozik azokra az esetekre, feldolgozása al-lekérdezések és lekérdezések a csoporttal.

Kapcsolódó cikkek