Névjegyzék

SQL teljes összeg. Az SQL - SUM, MIN, MAX, AVG, COUNT összesített funkciói. Paraméterek vagy argumentumok

Számítások

Végső funkciók

Az SQL kérés expresszióiban gyakran szükséges az adatok előzetes feldolgozásához. Ebből a célból speciális funkciókat és kifejezéseket használnak.

Gyakran meg kell tudni, hogy hány rekord megfelel egy adott kérelemnek,mi a numerikus oszlop értékeinek összege, maximális, minimális és átlagos értéke. Ez az úgynevezett végleges (statisztikai, aggregátum) funkciókat szolgálja. A végső funkciók feldolgozzák a megadott rekordkészleteket, például a kifejezést, ahol. Ha ezek szerepelnek a listán követő oszlopok a SELECT, az eredmény táblázat tartalmazza nemcsak az oszlopok az adatbázis tábla, hanem az értékeket kiszámítani ezeket a funkciókat. Olvass továbba végső funkciók listája.

  • Szám (paraméter) ) - Visszaadja a paraméterben megadott rekordok számát. Ha meg szeretné kapni az összes rekord számát, akkor meg kell adnia az Asterisk Symbol (*). Ha paraméterként megadja az oszlop nevét, akkor a funkció visszaadja a bejegyzések számát, amelyekben ez az oszlop nullon kívüli értékekkel rendelkezik. Annak megállapítására, hogy hány különböző érték tartalmaz egy oszlopot, meg kell adnia a külön kulcsszavakat. Például:

Válassza ki a számot (*) az ügyfelektől;

Válassza ki a számot (eladási quard) az ügyfelektől;

Válassza ki a számot (különálló sum_name) az ügyfelektől;

A következő lekérdezés végrehajtásának kísérlete hibaüzenetet fog tenni:

Válasszon régiót, számot (*) az ügyfelektől;

  • Összeg (paraméter ) - Visszaadja a paraméterben megadott oszlop értékét. A paraméter lehet az oszlop nevét tartalmazó kifejezés. Például:

Válassza ki az összeget. (Vario_Name) az ügyfelektől;

Ez az SQL kifejezés egy oszlopból és egy rekordból álló táblázatot ad vissza, amely tartalmazza az oszlop mennyiségének minden egyes értékét az ügyfél asztaláról.

Tegyük fel, hogy a forrás táblázatban az oszlop összegének értéke rubelben van kifejezve, és a teljes összeget dollárban kell kiszámítani. Ha az aktuális árfolyam például 27,8, akkor a kívánt eredmény elérése a kifejezés használatával:

Válassza ki az összeget. (Sum_name * 27,8) az ügyfelektől;

  • AVG (paraméter ) - Az oszlopparaméterben megadott összes érték aritmetikai átlagát adja vissza. A paraméter lehet az oszlop nevét tartalmazó kifejezés. Például:

Válassza az AVG (SUM_NAME) lehetőséget az ügyfelektől;

Válassza az AVG (SUM_NAME * 27.8) lehetőséget az ügyfelektől

Ahol régió<> "North_3apad";

  • Mach (paraméter ) - A paraméterben megadott oszlopban megadott maximális értéket adja vissza. A paraméter is lehet az oszlop nevét tartalmazó kifejezés is. Például:

Válassza ki a max (sum__nce) az ügyfelektől;

Válassza a Mach (Sum_Name * 27.8) lehetőséget az ügyfelektől

Hol. Vidék<> "North_3apad";

  • Min (paraméter ) - A paraméterben megadott oszlopban megadott minimális értéket adja vissza. A paraméter lehet az oszlop nevét tartalmazó kifejezés. Például:

Válassza ki a min (eladási megbízás) az ügyfelektől;

Válassza a Min (Sum__Nce * 27. 8) lehetőséget az ügyfelektől

Hol. Vidék<> "North_3apad";

A gyakorlatban gyakran szükség van egy végső táblázat megszerzésére, amely tartalmazza a numerikus oszlopok teljes, átlagolt, maximális és minimális értékét. Ehhez használja a Csoport (csoport általi) és a végső funkciókat.

Válassza ki a régiót, az összeget (Sumader) az ügyfelektől

Csoportonként;

A kérelem eredménytáblázata tartalmazza a régiók nevét és az összes ügyfél teljes (általános) összegét az adott régiókból (5. ábra).

Most vegye fontolóra, hogy megkapja az összes végleges adatot régióban:

Válasszon régiót, SUM (SUP opció), AVG (Sum_name), max (sum_name),Min (sum_name)

Az ügyfelektől

Csoportonként;

A forrás és az eredménytáblák az 1. ábrán láthatóak. 8. A példában csak az észak-nyugati régió szerepel a forrás táblázatban, több rekorddal. Ezért az eredménytáblázatban különböző eredményeket kapnak különböző értékek.

Ábra. 8. A megrendelések végleges táblázata régiónként

Ha az Oszlopok listáján szereplő végleges funkciókat használ, az eredménytáblában megfelelő fejlécek az Expr1001, az expr1002, stb. (vagy valami hasonló, az SQL végrehajtásától függően). Azonban a végső funkciók és más oszlopok értékeire vonatkozóan a saját belátása szerint. Ehhez elegendően az oszlop után a kiválasztás utasításban adja meg a típus kifejezését:

Cím_stolbets

A kulcsszó (AS) azt jelenti, hogy az eredménytáblában a megfelelő oszlopnak meg kell adnia egy címet. A kijelölt fejlécet álnévnek is nevezik. A következő példában (9. ábra) a Pseudonims minden számított oszlopra van beállítva:

Válasszon régiót,

ÖSSZEG. (Sum_name), mint [teljes rendelési összeg],

AVG. (A megrendelés összege) [Átlagos megrendelés összege],

Max (sum_name) maximális

Min. (Sum_name) minimális,

Az ügyfelektől

Csoportonként;

Ábra. 9. A régiók megrendeléseinek végleges táblázata az oszlop alias használatával

Pseudonims, amely több szóközzel elválasztott szavakból áll, szögletes zárójelek.

A végső funkciókat lehet használni a kiválasztás és kifejezések, de nem használhatók a hol a kifejezés. Az Onerater hasonló az üzemeltetőhöz, de ellentétben azzal, hogy hol válassza ki a csoportokban lévő rekordokat.

Tegyük fel, hogy meg kell határoznia, hogy melyik régióban több ügyfél. E célból használhatja ezt a kérést:

Válasszon régiót, számot (*)

Az ügyfelektől

Csoport által gróf (*)\u003e 1;

Az értékek feldolgozására szolgáló funkciók

Az adatokkal való együttműködés során gyakran feldolgozniuk kell őket (konvertálni a kívánt formába): Válasszon ki néhány aljzatot a sorban, távolítsa el a vezető és a végső réseket, kerekítse meg a számot, kiszámolja a négyzetgyöket, határozza meg az aktuális időt, stb. Háromféle funkciót követően elérhető az SQL:

  • string funkciók;
  • numerikus funkciók;
  • dátum-idő függvények.

Karakterláncfunkciók

A karakterláncfunkciók a karakterláncparaméterként kerülnek, és visszatérnek a karakterlánc vagy a null feldolgozása után.

  • Szubsztrázás (String kezdődik) - Visszaadja a paraméterként megadott karakterláncból kapott szubsztrátotvonal . Szubsztrázás A karakterrel kezdődik, amelynek sorszáma a Start paraméterben van megadva, és a hossz paraméterben van megadva. A karakterlánc szimbólumok számozása balról jobbra történik, az 1. szögletes zárójelzéssel kezdődik, csak azt a tényt jelöli, hogy az általuk kötött kifejezés nem kötelező. Ha kifejezésHosszabb ideig nem használt, akkor az aljzat visszakerülrajt és a forrásvonal végéig. Paraméterértékekhaza és hosszúságú Úgy kell kiválasztani, hogy a kívánt aljzat valóban a forrásvonalon belül van. Ellenkező esetben az aljzat funkció visszatér Null.

Például:

Substring ("Kedves Masha!" 9-től 4-ig) - visszatér "masha";

Szubsztrázás ("Kedves Masha!" 9-től) "Masha!";

Az aljzat ("Kedves Masha!" 15-től null.

Ezt a funkciót az SQL kifejezésben például az alábbiak szerint használhatja:

Válasszon * az ügyfelektől

Ahol az aljzat (régió 1-től 5-ig) \u003d "Észak";

  • Felső (string ) - Átadja a karakterláncparaméterben megadott összes karaktert a nagybetűkre.
  • Alsó ) - Átadja a karakterláncban megadott összes karaktert az alsó regiszterhez.
  • Trim (vezető | Trailing | mindkét ["szimbólum"] a sorból ) - Törli a vezető (vezető), végső (trailing), vagy ezeket és mások (mindkettő) karaktereket egy karakterláncból. Alapértelmezés szerint egy távoli szimbólum egy tér (""), így nem feltüntethető. Leggyakrabban ezt a funkciót pontosan használják a szóköz eltávolítására.

Például:

Trim (vezető "" a "város St. Petersburg") elforgatja a "St. Petersburg várost";

Trim (Traling "" a "St. Petersburg városából") Visszaadja a St. Petersburg várost;

Trim (mindkettő "Szentpétervár városából") - Visszaadja a St. Petersburg várost;

Trim (mind a "St. Petersburg városából) - Visszaadja a St. Petersburg várost;

Trim (mind "Mr." a "város St. Petersburg") - Visszaadja a "Szentpétervár Ood".

Ezek közül a funkciók közül a leggyakrabban használt - szubsztráló () és trim ().

Numerikus funkciók

A numerikus funkciók paraméterként nem csak numerikus típusokat kaphatnak, de mindig adják vissza a számot vagy a null (határozatlan értéket).

  • POZÍCIÓ ( tARGETSTROCK a karakterláncban) - Megkeresi a célvonal belépését a megadott karakterláncra. Sikeres keresés esetén visszaadja az első karakter pozíciószámát, különben - 0. Ha a célvonal nulla hosszúsággal rendelkezik (például egy karakterlánc "), akkor a függvény visszatér 1. Ha legalább az egyik paraméter Null, null visszaküld. A karakterlánc szimbólumok számozása balról jobbra történik, 1-től kezdődően.

Például:

Pozíció ("e" a "hello mindenkinek") - 5 visszatér;

Pozíció ("minden" a "Hello mindenki") - visszatér 8;

Pozíció ("hello mindenki") - visszatér 1;

Pozíció ("hi!" A "Hello mindenki" -ben) - visszatér 0.

Az asztali ügyfelek (lásd az 1. ábrát) A cím oszlop tartalmazza, kivéve a város nevét, az irányítószámot, az utca nevét és más adatokat. Előfordulhat, hogy egy adott városban élő ügyfélrekordokat választania kell. Tehát, ha a St. Petersburgban élő ügyfelekkel kapcsolatos rekordokat választania kell, a következő SQL kérés kifejezést használhatja:

Válasszon * az ügyfelektől

Ahol pozíció ("St. Petersburg" címben)\u003e 0;

Ne feledje, hogy ez az egyszerű kérés az adatok kiválasztására másképp formulázható:

Válasszon * az ügyfelektől

Ahol a "% Petersburg%" címe;

  • Kivonat (paraméter ) - Az elemet a dátum-idő vagy az intervallum típusából kivonja. Például:

Kivonat (hónap dátumtól a "2005-10-25") -visszatér 10.

  • Karakter_length (string ) - Visszaadja a karakterláncok számát.

Például:

Karakter_length ("Hello mindenki") - visszatér 11.

  • Oktet_length (string ) - Visszaadja az oktettek számát (bájt) a karakterláncban. A latin vagy cirill minden szimbóluma egy bájt, és a kínai ábécé szimbóluma két bájt.
  • Kardinalitás ) - Elemek gyűjteményét paraméterként veszi át, és visszaadja a gyűjtemény elemeinek számát (bíboros szám). A kollekció lehet például egy tömb vagy multiSiT tartalmazó elemek különböző típusú.
  • ABS (szám ) - Visszaadja a szám abszolút értékét. Például:

ABS (-123) 123;

ABS (2 - 5) - visszatér 3.

  • Mo d (szám1, szám2 ) - Az első szám egészének egész számának egyenlegét visszaadja. Például:

Mod (5, h) - visszatér 2;

Mod (2, h) - visszatér 0.

  • Ln (szám ) - Visszaadja a szám természetes logaritmusát.
  • EXR (szám) - Visszatérés (A természetes logaritmum alapja a számmal).
  • Teljesítmény (szám1, szám2 ) - Visszaadja a számot12. számú (1. szám a 2. fokozatig).
  • SQRT (szám ) - Visszatér egy négyzetgyököt.
  • Emelet (szám ) - Visszaadja a legnagyobb egész számot, amely nem haladja meg a megadott paramétert (kisebb irányba kerekítés). Például:

Padló (5.123) - Visszatérés 5.0.

  • Ceil (szám) vagy mennyezet (szám) ) - Visszaadja a legkisebb egész számot, amely nem kevesebb, mint a kerekítési paraméter nagy irányban). Például:

Ceil (5.123) - Visszatérés 6. 0.

  • Width_Bucket. (NUMBER1, NUMBER2, NUMEROSE, NUMEROSE, NUMER4) A 0 és a szám4 + 1. paraméterek és a Numerose között adja meg a numerikus szegmenst, amely egyensúlyi időközönként osztható meg, amelynek számát a 4. szám határozza meg. az intervallum szám, amelyben az érték1. Ha az 1. szám a megadott tartományon kívül esik, akkor a funkció 0 vagy 4 + 1. számot ad vissza, például: például:

Widh_bucket (3.14, 0, 9, 5) - visszatér 2.

Dátum-idő függvények

Az SQL nyelvnek három funkciója van, amelyek visszaadják az aktuális dátumot és időt.

  • Mostani dátum. - Visszaadja az aktuális dátumot (típus dátum).

Például: 2005-06-18.

  • Current_Time (szám ) - Visszaadja az aktuális időt (idő típus). Az integer paraméter jelzi a másodpercek benyújtásának pontosságát. Például, 2 másodperces értéket mutatnak be a századok pontosságával (két számjegy a frakcionált részben):

12:39:45.27.

  • Current_timestamp (szám ) - Visszaadja a dátumot és az időt (típusa timestamp). Például, 2005-06-18 12: 39: 45,27. Az integer paraméter jelzi a másodpercek benyújtásának pontosságát.

Ne feledje, hogy az e funkciók által visszaadott dátum és idő nincs szimbólum típus. Ha a karakterláncok formájában szeretné benyújtani őket, akkor az öntött () konverziós funkciót kell használnia.

A dátumidő funkciókat általában a kérések beillesztése, frissítése és törlése során alkalmazzák. Például, ha egy speciálisan megadott értékesítési információt írunk, az oszlopot az aktuális dátum és idő teszi. A hónap vagy negyedév összegének összegzése után a beszámolási időszakra vonatkozó értékesítési adatok törölhetők.

Számított kifejezések

A kiszámított kifejezések épülnek állandók (numerikus, string, logikai), függvények, mezőnevek és adatok más típusú összekötő számtani, húr, logikai és egyéb piaci szereplők. A kifejezések viszont kombinálhatók az üzemeltetőkkel bonyolultabb (kompozit) kifejezésekben. Kerek zárójeleket használnak a kifejezések kiszámításának eljárása.

Logikai üzemeltetők És, vagy nem és funkciók Korábban felülvizsgálták.

Aritmetikai szolgáltatók:

  • + - kiegészítés;
  • - - kivonás;
  • * - szorzás;
  • / - osztály.

String operátor Csak az egyik egy összekapcsolt üzemeltető vagy string ragasztás (|). Néhány SQL implementációban (például Microsoft Access) helyett (| |), a (+) szimbólumot használjuk. Az akkumulátoros kezelő egy második karakterláncot tulajdonít az első példa végéig, expresszió:

"Sasha" | | "Szeret" | "Masha"

a "Sashalubit Masha" karakterlánc eredményeként visszatér.

A kifejezések végrehajtásakor biztosítani kell, hogy az operandusok megengedett típusúak legyenek. Például a kifejezés: 123 + "SASHA" elfogadhatatlan, mert az aritmetikai addíciót üzemeltető a string operandusra alkalmazzák.

A számított kifejezések a kiválasztott nyilatkozat után, valamint a hol és a Havi-üzemeltetők feltételeinek feltételeiNg.

Tekintsünk több példát.

Hagyja, hogy az értékesítési táblázat tartalmazza a típus típusú oszlopokat, a mennyiséget és az árat, és meg kell ismernünk az egyes típusú termékek bevételét. Ehhez elegendő az oszlopok listájában, miután a kiválasztott operátor bekapcsolja az expressziós mennyiséget * Ár:

Válassza a Type_Dashovar, a mennyiség, az ár, a mennyiség * ÁrMint

Teljes értékesítésből;

A mint kulcsszót használja (AS) egy oszlop álnév beállítása számított adatokkal.

Ábrán. A 10. ábra mutatja az értékesítési táblázatot és a lekérdezés eredménytáblázatát.

Ábra. 10. Kérjen az összes áru bevételi számításának eredményét

Ha meg szeretné tudni az összes áru eladásának általános bevételét, elegendő a következő lekérdezés alkalmazása:

Válassza ki az összeget. (Mennyiség * ár) értékesítésből;

A következő lekérdezés számított kifejezéseket és oszlopok listáját tartalmazza, és a kezelő állapotában. Az értékesítési táblázatból az áruk, az értékesítésből származó bevételek, amelyeknek értékesítése több mint 1000:

Válassza a Type_Tovar, a mennyiség * Ár összesen

Értékesítésből

Hol * ár\u003e 1000;

Tegyük fel, hogy egy asztalt kell kapnia, amelyben két oszlop:

Az áruk típusát és az árat tartalmazó áruk;

Teljes bevétel.

Mivel feltételezzük, hogy az értékesítési oszlop forrás táblázata szerint a Type_lovar szimbolikus (char), és az ár oszlop numerikus, majd az adatok (ragasztás) kombinálása ezen oszlopokból, szükség van egy numerikus típusra a szimbólum az öntött () funkcióval. A fenti feladatot végrehajtó kérés így néz ki (11. ábra):

Válassza a Type_Stovar | lehetőséget | "(Ár:" | Cast (char (5) ár (5)) | ")" Termék, mennyiség * Ár összesen

Értékesítésből;

Ábra. 11. Kérjen az adatbázis-adatok egyaránt egy oszlopban

Jegyzet. A Microsoft Access alkalmazásban hasonló kérés lesz a következő űrlap:

Válassza a Type_Stovar + parancsot (Ár: "+ CStr. (Ár) + ")" termékként,

Mennyiség * Ár összesen

Értékesítésből;

Hagyományos kifejezések az esetkezelővel

A szokásos programozási nyelvekben feltételes átmeneti operátorok állnak rendelkezésre, amelyek lehetővé teszik a számítástechnikai folyamat ellenőrzését attól függően, hogy van-e bizonyos feltétele. Az SQL nyelven egy ilyen üzemeltető (eset, körülmény, másolás). Az SQL: 2003-ban ez az üzemeltető visszaadja az értéket, és ezért kifejezést használhat. Ebben a szakaszban két fő formája van.

Az esetkezelő értékeivel

Az esetkezelővel rendelkező ügykezelő a következő szintaxissal rendelkezik:

Checked_new

Amikor az érték1 ezután az eredményt1

Ha az érték 0, akkor resuletat2

. . .

Amikor a menue n, akkor n

Egyéb eredmények

Abban az esetben, amikor ellenőrzött Ugyanilyen érték1 , Az esetkezelő visszaadja az értéketeredménye1 , A kulcsszó után. Ellenkező esetben az ellenőrizhető_dációt összehasonlítjukjelentése2 , és ha egyenlőek, akkor az eredmény értéke2 visszaadódik. Ellenkező esetben az ellenőrzött értéket összehasonlítjuk a következő értékkel jelölt érték (mikor), stb. Ha az ellenőrizhető érték nem egyenlő ezen az értékek valamelyikével, akkor az érték visszatérteredmény X. a kulcsszó másat követően (egyébként).

Az egyéb kulcsszó nem kötelező. Ha hiányzik, és az összehasonlítás alá tartozó értékek egyike sem, nem egyenlő az értékelt értékkel, akkor az ügykezelő nullát ad vissza.

Tegyük fel, amely az ügyfél tábla (ld. 1.), akkor van szükség, hogy egy táblázat, amelyben a nevét a régiók helyébe kódszámok. Ha a forrás táblázatban nincs túl sok különböző régió, akkor kényelmes a kérés használata az ügyelvezetővel, hogy megoldja ezt a feladatot:

Válassza ki a nevet, a címet,

Esettartomány

Amikor "Moszkva", akkor "77"

Amikor a "Tver Region", akkor "69"

. . .

Más régió

Régió kódként

Az ügyfelektől;

Ügykezelő keresési kifejezésekkel

Az ügykezelő második formája azt feltételezi, hogy olyan felhasználásokat keres, amelyek megfelelnek bizonyos feltételeknek:

Ügy

Ha az 1. feltétel, akkor az eredmény 1

Amikor a wai2 ezután az eredményt eredményezi2

. . .

Ha az N állapot, akkor az n

Egyéb eredmények

Az esetkezelő ellenőrzi, hogy az 1. feltétel igaz-e az első bejegyzésre az üzemeltető, vagy az egész asztalnál meghatározott első bejegyzésre, ha nincs, ahol nincs hol. Ha igen, az eset visszaadja az eredmény értékét1. Ellenkező esetben egy feltételt ellenőrizzük ezt a rekordot. Ha igaz, akkor az eredmény értéke2 visszaadódik, stb. Ha a feltételek egyikét sem hajtják végre, akkor az értéket visszaküldi.X. a szó másolása után látható.

Az egyéb kulcsszó nem kötelező. Ha hiányzik, és a feltételek egyike sem történik, az ügyelvezető null elforgatja. Miután az operátor tartalmú esetet végrehajtja az első rekordra, a következő rekordra kerül. Így tovább folytatódik, amíg a rekordok teljes készletét feldolgozzák.

Tegyük fel, hogy a könyv táblázatban (név, ár), az oszlop , ha a megfelelő könyv nem érhető el. A következő kérés visszaad egy olyan táblát, amelyben a "nem elérhető" szöveg jelenik meg a null helyett:

Válassza ki a nevet

Ügy

Amikor az ár , akkor "nincs raktáron"

Egyébként leadott (ár, mint char (8))

Áron

Könyvekből;

Az ugyanazon oszlop összes értékének azonos típusúnak kell lennie. Ezért ez a lekérdezés az öntött típusú konverziós funkciót használja az oszlopértékek számának eléréséhez. Ár a szimbolikus típushoz.

Kérjük, vegye figyelembe, hogy az első űrlap helyett az ügykezelő mindig használható másodperc:

Ügy

Amikor VERSIMENT_VENUE \u003d érték1 Ezután az eredményt1

Ha be van jelölve.

. . .

Amikor a versement_vense \u003d értékN, majd Pseltytn.

Máshol

Nullif és coalesce funkciók

Egyes esetekben, különösen az adatok frissítési kérelmeket (UPDATE operátor), akkor kényelmesen használható kompakt funkciók nullif () (NULL, ha), és összeolvadnak () (, ha), és összeolvadnak ().

NULLIF funkció ( jelentése1, érték2) Visszatér, ha az első paraméter értéke megfelel a második paraméter értékének, inkonzisztenciák esetén az első paraméter értékét változatlanul visszaküldi. Vagyis, ha az egyenlőség értéke1 \u003d érték2 végrehajtásra kerül, akkor a függvény nullot ad vissza, különben az érték értéke1.

Ez a funkció egyenértékű az ügykezelővel a következő két formában:

  • Case Value1

Amikor javasolja2, akkor null

Egyéb érték1

  • Ügy

Amikor érték1 \u003d érték2, akkor null

Egyéb érték1

Coalesce funkció ( value1, érték2, ...,n érték n) elfogadja az olyan értékek listáját, amelyek konkrét és bizonytalanok lehetnek (null). A funkció egy adott értéket ad vissza a listából vagy nullból, ha az összes érték nincs meghatározva.

Ez a funkció az alábbi esetkezelővel felel meg:

Ügy

Ha az 1. érték nem , akkor érték 1

Ha a 2. érték nem , akkor érték 2

. . .

Ha n nem , akkor érték n

Egyébként null.

Tegyük fel, hogy a könyv táblázatban (név, ár), az ár oszlop NULL, ha a megfelelő könyv nem áll rendelkezésre. A következő kérés visszaad egy olyan táblát, amely helyetteNULLA Megjelenik a "Nincs raktáron" szöveg:

Válassza ki a nevet, a koalátumot (Cast (CHAR (8)),

"Nem elérhető") az ár

Könyvekből;

SQL - 11. lecke. Teljes funkciók, számított oszlopok és nézetek

A végső funkciókat statisztikai, összesített vagy összegzésnek is nevezik. Ezek a funkciók egy sorszámot kezelnek az egyik érték számlálásához és visszaküldéséhez. Csak öt ilyen funkció van:
  • AVG () A funkció az átlagos oszlopértéket adja vissza.

  • COUNT () A funkció az oszlopban lévő sorok számát adja vissza.

  • Max () A funkció az oszlop legnagyobb értékét adja vissza.

  • MIN () A funkció a legkisebb értéket adja vissza az oszlopban.

  • SUM () A funkció visszaadja az oszlopértékek mennyiségét.

Egyikük - számít () - már találkoztunk a 8. leckében. . Most megismerjük a többit. Tegyük fel, hogy meg akartuk tanulni a boltunkban lévő könyvek minimális, maximális és átlagos árát. Ezután az áratáblából (árak) az oszlop minimális, maximális és átlagos értéke. Kérdés egyszerű:

Válassza ki a min (ár), max (ár), AVG (ár) az áraktól;

Most szeretnénk tudni, hogy mennyire hozott nekünk a "nyomtatóház" (id \u003d 2) szolgáltatójához. Hogy ilyen kérés ne legyen olyan egyszerű. Gondoljunk arra, hogyan kell csinálni:

1. Először is ki kell választania azokat az azonosítóeszközöket (ID_INCOMING) a szállítási táblázatból (ID_Incoming) (ID \u003d 2) a készletből (ID \u003d 2):

2. Most az asztalról kellékek log (Magazine_incoming), akkor ki kell választania termékek (ID_PRODUCT) és mennyiségi (mennyiség), ami találtak a kínálat pont 1. bekezdésben. Ez az, hogy az (1) bekezdés szerinti kérelem beágyazódik:

3. Most meg kell adnunk az árakat az áratábla (árak) tárolt termékeihez. Vagyis az ID_PROPRODUCT oszlopban az áruk (magazin_incoming) és az árak (árak) kombinálnunk kell:

4. A kapott táblázat egyértelműen hiányzik az oszlop összege, azaz számított oszlop. Az ilyen oszlopok létrehozásának képessége a MySQL-ben található. Ehhez csak meg kell adnia a számított oszlop nevét a lekérdezésben, és mit kell kiszámítani. Példánkban ezt az oszlopot Summa-nak hívják, és kiszámítja, hogy a mennyiség oszlopok és az ár terméke lesz. Az új oszlop nevét a szó elválasztja:

SELECT magazine_incoming.id_product, magazine_incoming.quantity, prices.price, magazine_incoming.quantity * prices.price AS summa FROM magazine_incoming árak WHERE magazine_incoming.id_product \u003d prices.id_product ÉS id_incoming \u003d (SELECT id_incoming bejövő WHERE id_vendor \u003d 2);

5. Kiváló, csak összefoglaljuk az Summa oszlopot, és végül megtudjuk, hogy milyen összegeket hoztunk az árut a "nyomtatás házának". Szintaxis az összeg () funkció használatához:

Válassza ki az SUM (SHUMBACE NAME) gombot a NAME_TABLE-ből;

Ismerjük az oszlop nevét - Summa, de nincs asztal neve, mivel ez a lekérdezés eredménye. Mit kell tenni? Ilyen esetekben a MySQL-ben nézetek. A nézet kiválasztási kérelem, amely egy egyedi nevet kap, és amelyet későbbi felhasználás céljából az adatbázisba lehet menteni.

A reprezentáció létrehozása szintaxis a következő:

Készítse el a nézet képviselő nevét lekérdezésként;

Mentsük meg kérését a Resort_vendor néven:

Létrehozása Report_vendor AS Select Magazine_Incoming.Id_incoming.id_product, Magazine_Incoming.Quantity.Quantity.quantity, árak.price, Magazine_Incoming.Quantity * árak.price as Summa a magazin_incoming, ahol magazin_incoming.id_product \u003d árak.ID_PRODUCT );

6. Most használhatja a teljes összeg () funkciót:

Válassza ki az összeg (Summa) a REPORT_VENDOR-tól;

Tehát elértük az eredményt, az igazságnak ezt a befektetett kérelmeket, egyesületeket, számított oszlopokat és prezentációkat kellett használnunk. Igen, néha az eredmény beszerzéséhez, azt kell gondolkodni anélkül, hogy bárhol. De megérintettünk két nagyon fontos témát - számított oszlopok és prezentációk. Beszéljünk róluk részletesebben.

Számított mezők (oszlopok)

A példában ma megnéztük a matematikai számított mezőt. Itt szeretném hozzáadni, hogy nem csak a szorzás (*) működését, hanem a kivonás (-) és az adagolás (+) és a (/) osztályt is használhatjuk. A szintaxis a következő:

SELECT_NAME_STOLBET_1, _STOLBET_NAME_2, _STOLBET_NAME_1 * _NAME_22 AS_NAME_STOLBET_STOLBET_NAME_Table;

A második Nuance a kulcsszó, amelyet a számított oszlop nevének beállításához használtunk. Valójában ez a kulcsszó segítségével a pszeudonimokat bármely oszlopra definiálják. Miért van rá szükséged? A kód csökkentése és elolvasása. Például képviseletünk így nézhet ki:

Hozzon létre egy Report_vendor létrehozása A.ID_PRODUCT, A.QUANTITY, B.PRICE, A.QUANTITY * B.URICE mint Summa a Magazine_Incoming As A mint b, ahol a.ID_Product \u003d b.id_product \u003d b.id_product \u003d (válassza az ID_Incoming a bejövőből Ahol ID_Vendor \u003d 2);

Egyetértek azzal, hogy sokkal rövidebb és világosabb.

Reprezentáció

A képviseletek létrehozásának szintaxisát már figyelembe vették. A nézetek létrehozása után ugyanúgy használhatók, mint a táblák. Vagyis a kéréseket, szűrni és rendezni az adatokat, kombináljon néhány nézetet másokkal. Egyrészt ez egy nagyon kényelmes módja az alkatrész komplex lekérdezéseinek (mint példánkban) tárolására.

De emlékezni kell arra, hogy a nézetek nem táblázat, azaz nem tárolják az adatokat, hanem csak kivonják őket más táblázatokból. Innen először, amikor az asztalok adatai megváltoztatásakor a prezentáció eredményei is megváltoznak. És másodszor, a nézet kérése során a szükséges adatok megtalálhatók, azaz a DBMS teljesítménye csökken. Ezért nem szükséges visszaélni őket.

Az SQL nyelvének összegét az egyszerűség ellenére gyakran használják az adatbázissal való együttműködés során. Ezzel kényelmes, hogy néhány köztes vagy végső eredményt szerezzen, anélkül, hogy a DBMS kiegészítő eszközei segítene.

Szintaxis funkció

A legtöbb SQL nyelven az SUM SYNTAX ugyanaz - csak a mező nevét vagy néhány számtani hatását olyan érvként használják, amely összegzést igényel.

Kivételes esetekben lehetőség van egy adott értéket egy szám vagy változó formájában történő továbbítására, azonban az ilyen "sémákat" gyakorlatilag nem használják, mivel nem hordoznak nagy értéket. Az alábbiakban az SQL funkció szintaxisa:

sUM (A) - Itt egy paraméterként használt numerikus értéket vagy kifejezést

Érdemes megjegyezni, hogy a paraméter előtt beállíthatja a kulcsszavakat, például külön vagy mindegyiket, amely csak egyedi vagy minden értéket igényel.

Példa az SQL összeg használatára

A funkció működésének elvének végleges megértéséhez érdemes több példát is figyelembe venni. Az SQL összeg mind visszaadott eredményként, mind pedig a közbenső érték szerepét használhatja, például az állapot ellenőrzéséhez.

Az első esetben, fontolja meg a lehetőséget, ha azt szeretné, hogy visszatérjen az értékesítési összeg minden egyes termék, tekintettel arra, hogy a vásárlások számát lehet többes. Az eredmény elérése érdekében elegendő lesz a következő lekérdezés végrehajtásához:

Válasszon terméket, SUM (TOTAL) ELADÓ GROURBY áruk;

A parancsra adott válasz egyedülálló listája lesz a termékek végső vásárlási összegével.

A második példa esetében meg kell szerezni a termékek listáját, az értékesítés összegét, amellyel egy bizonyos értéket meghaladja, például 100. Ez a feladat eredményét többféleképpen lehet elérni, amelynek a legoptimálisabb egy kérés végrehajtása:

Válassza ki az árut (Válassza ki a terméket, SUM (TOTAL) értéket az értékesítésből), ha az összeg\u003e 100.

Ebben a bemutatóban megtanulod a MySQL használatát Összegfunkció szintaxissal és példákkal.

Leírás

Mysql funkció ÖSSZEG. Visszaadja a kifejezés teljes értékét.

Szintaxis

MySQL szintaxisösszegek funkciók:

Vagy a MySQL szintaxis összege, amikor egy vagy több oszlopra vonatkozó eredményeket csoportosít:

Paraméterek vagy argumentumok

expresszion1, expresszion2, expresszion2, expresszion_n - kifejezések, amelyek nem kapszulázottak az összeg függvényében, és az SQL operátor végén szerepelnek a csoportba.

aggregate_expression egy oszlop vagy kifejezés, amelyet összegezni fog.

táblázatok - táblázatok, amelyekből rekordokat szeretne kapni. Legalább egy táblázatnak kell lennie a záradékból.

Ahol a feltételek - opcionális. Ezek azok a feltételek, amelyeket a kiválasztott bejegyzésekhez be kell fejezni.

Alkalmazás

Az összeg funkció a MySQL következő verzióiban használható:

  • MySQL 5.7, MySQL 5.6, MySQL 5.5, MySQL 5.1, MySQL 5.1, MySQL 5.0, MySQL 4.1, MySQL 4.0, MySQL 3.23

Példa egy kifejezéssel

Tekintsük a példát MySQL függvények a SUM hogy megértsük, hogyan kell használni a SUM függvény MySQL.

Például meg kell találni, hogy mit halmozott teljes fizetést az összes alkalmazott, akinek fizetése meghaladja a 20.000 $ évente.

Ebben a példában, a SUM függvény, a kifejezés a SUM (fizetés) jelöltek álnév „teljes fizetés”. Ennek eredményeként, amikor egy sor eredményt adnak vissza, a teljes fizetés a mező nevét fogja megjeleníteni.

Példa a különálló használatával

A különálló ajánlatot az SUM funkcióban használhatja. Például az alábbi SQL utasítás visszaadja az egyedülálló bérek együttes teljes fizetését, ahol a fizetés évente 20 000 dollárnál nagyobb.

Ha két fizetés évente 10 000 dollár, akkor csak az alábbi értékek használhatók az összeg funkcióban.

Példa a képlet alkalmazásával

Az összeg funkcióban található kifejezésnek nem kell egy mezőnek lennie. Használhatja a képletet is. Például kiszámíthatja az Általános Bizottságot.

Mysql

Válassza ki az összeget (értékesítés * 0,05), mint "teljes jutalék" a megrendelésektől;

Válassza ki az összeget (értékesítés * 0,05), mint "teljes jutalék"

Megrendelésekből;

Példa a csoport segítségével

Bizonyos esetekben a csoportot SUM funkcióval kell használni.

Például használhatja a SUM függvény visszatérési az osztály és a teljes összeg az értékesítés (értékesítés a megfelelő megye).



Tetszett a cikket? Oszd meg