Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Windows Phone
  • Funksionet e grumbullimit të Sql. Funksionet e grumbullimit të SQL - SUM, MIN, MAX, AVG, COUNT

Funksionet e grumbullimit të Sql. Funksionet e grumbullimit të SQL - SUM, MIN, MAX, AVG, COUNT

Për të përmbledhur informacionin e përfshirë në bazën e të dhënave, SQL ofron funksione agregate. Një funksion agregat merr një kolonë të tërë të dhënash si argument dhe kthen një vlerë të vetme që e përmbledh atë kolonë në një mënyrë specifike.

Për shembull, funksioni agregat AVG () merr një kolonë numrash si argument dhe llogarit mesataren e tyre.

Për të llogaritur të ardhurat mesatare për frymë të një banori të Zelenogradit, ju nevojitet pyetja e mëposhtme:

ZGJIDH "TË ARDHURAT MESATORE =", AVG (SUMD)

SQL ka gjashtë funksione agregate që ofrojnë lloje të ndryshme përmbledhjesh (Figura 1):

- SUM () llogarit shumën e të gjitha vlerave të përfshira në kolonë;

- AVG () llogarit mesataren midis vlerave të përmbajtura në kolonë;

- MIN () gjen më të voglin midis të gjitha vlerave të përfshira në kolonë;

- MAX () gjen më të madhin midis të gjitha vlerave të përfshira në kolonë;

- COUNT () numëron numrin e vlerave që përmbahen në kolonë;

- COUNT (*) numëron numrin e rreshtave në tabelën e rezultateve të pyetjes.

Argumenti për një funksion agregat mund të jetë një emër i thjeshtë kolone, si në shembullin e mëparshëm, ose një shprehje, si në pyetjen e mëposhtme që llogarit taksën për frymë:

SELECT AVG (SUMD * 0.13)

Ky pyetje krijon një kolonë të përkohshme që përmban vlerat (SUMD * 0.13) për çdo rresht në tabelën PERSON, dhe më pas llogarit mesataren e kolonës së përkohshme.

Shuma e të ardhurave të të gjithë banorëve të Zelenograd mund të llogaritet duke përdorur funksionin agregat SUM:

ZGJIDH SHUMËN (SHUMË) NGA PERSONI

Funksioni agregat mund të përdoret gjithashtu për të llogaritur totalet për një tabelë të rezultateve të marra duke bashkuar disa tabela burimore. Për shembull, ju mund të llogaritni shumën totale të të ardhurave që banorët marrin nga një burim i quajtur "Bursa":

ZGJIDH SHUMEN (PARAJA)

NGA FITIMI, HAVE_D

KU PROFIT.ID = HAVE_D.ID

AND PROFIT.SOURCE = 'Bursë'

Funksionet agregate MIN () dhe MAX () ju lejojnë të gjeni, respektivisht, vlerat më të vogla dhe më të mëdha në tabelë. Sidoqoftë, kolona mund të përmbajë vlera numerike ose vargje, ose vlera datë ose orë.

Për shembull, mund të përcaktoni:

(a) të ardhurat totale më të ulëta të fituara nga rezidentët dhe tatimi më i lartë i pagueshëm:

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

(b) datat e lindjes së banorit më të vjetër dhe më të ri:

ZGJIDH MINI (RDATE), MAX (RDATE)

(c) mbiemrat, emrat dhe patronimet e banorëve të parë dhe të fundit në listë, të renditura sipas alfabetit:

ZGJIDH MIN (FIO), MAX (FIO)

Kur aplikoni këto funksione agregate, duhet të mbani mend se të dhënat numerike krahasohen sipas rregullave aritmetike, datat krahasohen në mënyrë sekuenciale (vlerat e mëparshme të datës konsiderohen më të vogla se ato të mëvonshme), intervalet kohore krahasohen në bazë të kohëzgjatjes së tyre.

Kur përdorni MIN () dhe MAX () me të dhëna vargu, rezultati i krahasimit të dy vargjeve varet nga tabela e kodimit të karaktereve të përdorur.

Funksioni agregat COUNT () numëron numrin e vlerave në një kolonë të çdo lloji:

(a) sa apartamente ka në mikrodistriktin 1?

ZGJIDH NUMRIN (ADR) FROM FLAT WHERE ADR LIKE "%, 1_ _-%"

(b) sa banorë kanë burime të ardhurash?

ZGJIDH NUMRIN (NOM I NDRYSHME) NGA HAVE_D

(c) sa burime të ardhurash përdoren nga banorët?

SELECT COUNT (ID DISTINCT) FROM HAVE_D (Fjala kyçe DISTINCT specifikon që vlerat jo dublikatë në kolonë numërohen).

Funksioni i agregatit special COUNT (*) numëron rreshtat në tabelën e rezultateve, jo vlerat e të dhënave:

(a) sa apartamente ka në mikrodistriktin e dytë?

ZGJIDH NUMRIN (*) FROM FLAT WHERE ADR LIKE "%, 2 __-%"

(b) sa burime të ardhurash ka Ivan Ivanovich?

ZGJIDH NUMRIN (*) NGA PERSONI, HAVE_D WHERE FIO = "Ivanov Ivan Ivanovich" DHE PERSON.NOM = HAVE_D.NOM

(c) sa banorë jetojnë në një apartament në një adresë të caktuar?

ZGJIDH NUMRIN (*) FROM PERSON WHERE ADR = "Zelenograd, 1001-45"

Një mënyrë për të kuptuar se si ekzekutohen pyetjet agregate është të mendojmë për ekzekutimin e pyetjeve në dy pjesë. Së pari, përcaktohet se si pyetja do të funksiononte pa funksione agregate, duke kthyer rreshta të shumtë të rezultateve. Funksionet e grumbulluara më pas aplikohen në rezultatet e pyetjes, duke kthyer një rresht të vetëm përmbledhës.

Për shembull, merrni parasysh pyetjen komplekse të mëposhtme: gjeni të ardhurat totale mesatare për frymë, shumën e të ardhurave totale të banorëve dhe të ardhurat mesatare të burimit si përqindje e të ardhurave totale të banorit. Përgjigja jepet nga operatori

SELECT AVG (SUMD), SUM (SUMD), (100 * AVG (PARA / SUMD)) FROM PERSON, FITIMI, HAVE_D WHERE PERSON.NOM = HAVE_D.NOM DHE HAVE_D.ID = PROFIT.ID

Pa funksione agregate, pyetja do të dukej kështu:

ZGJIDH SUMD, SUMD, PARA / SUMD FROM PERSON, FITIMI, HAVE_D WHERE PERSON.NOM = HAVE_D.NOM DHE HAVE_D.ID = PROFIT.ID

dhe do të kthente një rresht rezultatesh për çdo banor dhe burim specifik të ardhurash. Funksionet agregate përdorin kolonat në tabelën e rezultateve të këtij pyetësori për të prodhuar një tabelë me një rresht me rezultatet përmbledhëse.

Në rreshtin e kolonave të kthyera, mund të specifikoni një funksion agregat në vend të çdo emri kolone. Për shembull, mund të përfshihet në një shprehje që shton ose zbret vlerat e dy funksioneve agregate:

SELECT MAX (SUMD) -MIN (SUMD) NGA PERSONI

Megjithatë, një funksion agregat nuk mund të jetë një argument për një funksion tjetër agregat, d.m.th. Funksionet agregate të mbivendosur janë të ndaluara.

Për më tepër, funksionet agregate dhe emrat e kolonave të rregullta nuk mund të përdoren në listën e kolonave të kthyera në të njëjtën kohë, pasi nuk ka asnjë pikë në këtë, për shembull:

ZGJIDH FIO, SHUMË (SHUMË) NGA PERSONI

Këtu, elementi i parë i listës udhëzon DBMS të krijojë një tabelë që do të përbëhet nga disa rreshta dhe do të përmbajë një rresht për çdo banor. Artikulli i dytë në listë kërkon që DBMS të marrë një vlerë rezultati, që është shuma e vlerave në kolonën SUMD. Këto dy udhëzime kundërshtojnë njëra-tjetrën, duke rezultuar në një gabim.

Sa më sipër nuk zbatohet për rastet e përpunimit të nënpyetjeve dhe pyetjeve me grupim.

Përdorimi i funksioneve agregate

SQL përcakton shumë funksione të integruara të kategorive të ndryshme, ndër të cilat një vend të veçantë zënë funksionet agregate që funksionojnë në vlerat e kolonave në një grup rreshtash dhe kthejnë një vlerë të vetme. Argumentet e funksioneve agregate mund të jenë si kolonat e tabelës ashtu edhe rezultatet e shprehjeve mbi to. Funksionet agregate mund të përfshihen vetë në shprehje të tjera aritmetike. Tabela e mëposhtme liston funksionet standarde të përbashkëta unare më të përdorura.


Formati i përgjithshëm i një funksioni agregat unar është si më poshtë:

emri_funksionit ([TË GJITHA | TË DISTINCT] shprehje)

ku DISTINCT tregon se funksioni duhet të marrë parasysh vetëm vlera të ndryshme argumenti, dhe ALL - të gjitha vlerat, duke përfshirë vlerat e kopjuara (ky është parazgjedhja). Për shembull, funksioni AVG me fjalën kyçe DISTINCT për rreshtat e kolonave me vlera 1, 1, 1 dhe 3 do të kthejë 2, dhe nëse fjala kyçe ALL është e pranishme, do të kthejë 1.5.

Funksionet agregate përdoren në klauzolat SELECT dhe HAVING. Këtu do të shikojmë përdorimin e tyre në klauzolën SELECT. Në këtë rast, shprehja në argumentin e funksionit zbatohet për të gjitha rreshtat në tabelën hyrëse të klauzolës SELECT. Për më tepër, funksionet e përmbledhura dhe kolonat e tabelës (ose shprehjet me to) nuk mund të përdoren në klauzolën SELECT, përveç nëse klauzola GROUP BY, të cilën do ta diskutojmë në seksionin tjetër, nuk mungon.

Funksioni COUNT ka dy formate. Në rastin e parë, numri i rreshtave në tabelën hyrëse kthehet, në rastin e dytë, numri i vlerave të argumenteve në tabelën hyrëse:

  • COUNT (*)
  • COUNT (shprehje)

Mënyra më e thjeshtë për të përdorur këtë funksion është të numëroni numrin e rreshtave në një tabelë (të gjitha ose duke përmbushur një kusht të caktuar). Për këtë përdoret sintaksa e parë.

Pyetje: Numri i llojeve të produkteve, informacioni për të cilin është i disponueshëm në bazën e të dhënave.

ZGJIDH NUMRIN (*) SI "Numri i llojeve të produkteve"

NGA Produkti

Në variantin e dytë të sintaksës për funksionin COUNT, emri i një kolone të vetme mund të përdoret si argument. Në këtë rast, numri i ose i të gjitha vlerave në këtë kolonë të tabelës hyrëse llogaritet, ose vetëm vlerave që nuk përsëriten (kur përdorni fjalën kyçe DISTINCT).

Pyetje: Numri i emrave të ndryshëm që përmbahen në tabelën e Klientit.

ZGJIDH NUMRIN (EMRI I NDRYSHËM)

NGA Klienti

Përdorimi i pjesës tjetër të funksioneve agregate unare është i njëjtë si për COUNT, përveç se për funksionet MIN dhe MAX, përdorimi i fjalëve kyçe DISTINCT dhe ALL është i pakuptimtë. Përveç fushave numerike, fushat e karaktereve mund të përdoren me funksionet COUNT, MAX dhe MIN. Nëse argumenti i funksionit agregat nuk përmban vlera, funksioni COUNT kthen 0 dhe të gjithë të tjerët kthejnë NULL.

ZGJIDH MAX (Data e porosisë)

NGA

KU Urdhri Data "1.09.2010"

Detyrë vetë-studimi: Formuloni pyetje në SQL për të zgjedhur të dhënat e mëposhtme:

  • Kostoja totale e të gjitha porosive;
  • Numri i qyteteve të veçanta të përfshira në tabelën e Klientit.


  • Funksionet agregate përdoren si emrat e fushave në deklaratën SELECT, me një përjashtim: ata marrin emrin e fushës si argument. Me funksione SHUMË dhe AVG mund të përdoren vetëm fushat numerike. Me funksione COUNT, MAX dhe MIN mund të përdoren si fushat numerike ashtu edhe ato të karaktereve. Kur përdoret me fushat e karaktereve MAX dhe MIN do t'i përkthejë në ekuivalentin ASCII dhe do t'i përpunojë sipas rendit alfabetik. Disa DBMS lejojnë përdorimin e agregateve të mbivendosur, por ky është një devijim nga standardi ANSI me të gjitha pasojat që pasojnë.


Për shembull, mund të llogarisni numrin e studentëve që kanë kaluar provimet në secilën disiplinë. Për ta bërë këtë, duhet të ekzekutoni një pyetje të grupuar sipas fushës "Disiplina" dhe të shfaqni si rezultat emrin e disiplinës dhe numrin e rreshtave në grup për këtë disiplinë. Përdorimi i karakterit * si argument për funksionin COUNT do të thotë që të gjitha rreshtat në grup janë të numëruara.

ZGJIDH R1. Disiplinë, COUNT (*)

GRUP NGA R1 Disiplina;

Rezultati:


SELECT R1 Disiplinë, COUNT (*)

KU R1. NUK ËSHTË rezultati NULL

GRUP NGA R1 Disiplina;

Rezultati:


nuk do të përfshihet në grupin e tupave përpara grupimit, kështu që numri i tupave në grup për disiplinën "Teoria e Informacionit" do të jetë 1 më pak.

Një rezultat i ngjashëm mund të merret nëse e shkruani kërkesën në mënyrën e mëposhtme:

ZGJIDH R1. Disiplinë, COUNT (R1. Vlerësim)

GRUPI NGA R1. Disipline;

Funksioni COUNT (EMRI ATRIBUTE) numëron numrin e vlerave të përcaktuara në një grup, në krahasim me një funksion COUNT (*), i cili numëron numrin e rreshtave në grup. Në të vërtetë, në grupin me disiplinën "Teoria e informacionit" do të ketë 4 rreshta, por vetëm 3 vlera specifike të atributit "Vlerësimi".


Rregullat për trajtimin e vlerave null në funksionet agregate

Nëse ndonjë vlerë në kolonë është e barabartë I PAVLEFSHËM ato përjashtohen gjatë llogaritjes së rezultatit të funksionit.

Nëse të gjitha vlerat në një kolonë janë të barabarta I PAVLEFSHËM, pastaj Shuma maksimale minimale mesatare = NULL, numërim = 0 (zero).

Nëse tabela është bosh, numërimi (*) = 0 .

Funksionet agregate mund të përdoren edhe pa operacionin paraprak të grupimit, në këtë rast e gjithë relacioni konsiderohet si një grup dhe për këtë grup mund të llogaritet një vlerë për grup.

Rregulla për interpretimin e funksioneve agregate

Funksionet agregate mund të përfshihen në listën e daljes dhe më pas ato aplikohen në të gjithë tabelën.

SELECT MAX (Rezultati) nga R1 do të japë vlerësimin maksimal në seancë;

ZGJIDH SHUMEN nga R1 do të japë shumën e të gjitha vlerësimeve për sesion;

SELECT AVG (Rezultati) nga R1 do të japë një rezultat mesatar për të gjithë seancën.


2; Rezultati: "width = 640"

Duke iu referuar sërish bazës së të dhënave Session (tabelat R1), do të gjejmë numrin e provimeve të mbartura me sukses:

ZGJIDH NUMRIN (*) Si Me qira _ provimet

KU Klasa 2;

Rezultati:


Argumenti i funksioneve agregate mund të jetë kolona të veçanta tabelash. Për të llogaritur, për shembull, numrin e vlerave të dallueshme të një kolone të caktuar në një grup, është e nevojshme të përdorni fjalën kyçe DISTINCT së bashku me emrin e kolonës. Le të llogarisim numrin e notave të ndryshme të marra për secilën disiplinë:

ZGJIDH Disiplinë R1, COUNT (Vlerësim DISTINCT R1)

KU R1. NUK ËSHTË rezultati NULL

GRUP NGA R1 Disiplina;

Rezultati:


I njëjti rezultat arrihet nëse përjashtoni kushtin eksplicit në pjesën WHERE, në të cilin rast pyetja do të duket kështu:

ZGJIDH R1. Disiplinë, COUNT (DISTINCT R1. Vlerësim)

GRUPI NGA R1. Disipline;

Funksioni COUNT (DISTINCT R1. Vlerësim) konsideron vetëm të sigurt të ndryshme vlerat.

Në mënyrë që të merret rezultati i dëshiruar në këtë rast, është e nevojshme të bëhet një transformim paraprak i llojit të të dhënave të kolonës "Score", duke e sjellë atë në një lloj real, atëherë rezultati i llogaritjes së mesatares nuk do të jetë një numër i plotë. Në këtë rast, kërkesa do të duket si kjo:


2 Grupi sipas R2. Grupi, R1. Disipline; Këtu, funksioni CAST () konverton kolonën "Score" në një lloj të vlefshëm të dhënash. "gjerësia = 640"

Zgjidhni R2.Group, R1.Discipline, Numëroni (*) si Total, AVG (cast (Rezultati si dhjetor (3,1))) si Pika_mesatare

Nga R1, R2

ku R1. Emri i plotë = R2. Emri dhe R1. rezultati nuk është nul

dhe R1. Klasa 2

Grupi sipas R2. Grupi, R1. Disipline;

Këtu funksioni CAST () konverton kolonën Score në një lloj të vlefshëm të dhënash.


Ju nuk mund të përdorni funksione agregate në klauzolën WHERE sepse kushtet në këtë seksion vlerësohen në terma të një rreshti të vetëm, dhe funksionet e përgjithshme vlerësohen në terma të grupeve të rreshtave.

Klauzola GROUP BY ju lejon të përcaktoni një nëngrup vlerash në një fushë të caktuar në terma të një fushe tjetër dhe të aplikoni një funksion agregat në nëngrup. Kjo bën të mundur kombinimin e fushave dhe funksioneve të përmbledhura në një klauzolë të vetme SELECT. Funksionet agregate mund të përdoren si në shprehjen për nxjerrjen e rezultateve të rreshtit SELECT, ashtu edhe në shprehjen për përpunimin e grupeve të krijuara HAVING. Në këtë rast, çdo funksion agregat llogaritet për çdo grup të përzgjedhur. Vlerat e marra gjatë llogaritjes së funksioneve agregate mund të përdoren për të shfaqur rezultatet përkatëse ose për gjendjen e përzgjedhjes së grupeve.

Le të ndërtojmë një pyetje që shfaq grupet në të cilat janë marrë më shumë se një deuce në një disiplinë në provime:


një; Rezultati: "width = 640"

ZGJIDH R2. Grupi

NGA R1, R2

KU R1. Emri i plotë = R2. Emri DHE

Rezultati R1 = 2

GRUPI NGA R2.Grupi,R1.Disiplina

Duke numëruar (*) 1;

Rezultati:


Ne kemi një DB "Bankë", e përbërë nga një tabelë F, e cila ruan relacionin F, që përmban informacione për llogaritë në degët e një banke të caktuar:

Gjeni gjendjen totale të llogarisë në degë. Është e mundur të bëhet një pyetje e veçantë për secilën prej tyre duke zgjedhur SUM nga tabela për secilën degë, por operacioni GROUP BY do t'i vendosë të gjitha në një komandë:

ZGJIDH Dega , SUM ( Pjesa e mbetur )

GRUPI SIPAS Degës;

GRUP NGA zbaton funksionet agregate në mënyrë të pavarur për çdo grup të identifikuar nga vlera e fushës Degë. Grupi përbëhet nga linja me vlerë të njëjtë të fushës Dega, dhe funksioni SHUMË zbatohet veçmas për secilin grup të tillë, pra gjendja totale e llogarisë llogaritet veçmas për secilën degë. Vlera e fushës në të cilën zbatohet GRUP NGA, ka, sipas përkufizimit, vetëm një vlerë për grupin e daljes, ashtu si rezultati i një funksioni agregat.


5000; Argumentet në klauzolën HAVING ndjekin të njëjtat rregulla si në klauzolën SELECT, e cila përdor GROUP BY. Ata duhet të kenë një vlerë për grupin e daljes. "gjerësia = 640"

Le të supozojmë se ju zgjidhni vetëm ato degë, vlerat totale të gjendjeve të llogarive të të cilave tejkalojnë 5000 dollarë, si dhe gjendjet totale për degët e zgjedhura. Për të shfaqur degët me gjendje totale mbi 5000 dollarë, duhet të përdorni klauzolën HAVING. Klauzola HAVING përcakton kriteret e përdorura për të hequr grupe specifike nga dalja, ashtu siç bën klauzola WHERE për rreshtat individualë.

Komanda e saktë do të ishte si më poshtë:

SELECT Degë, SUM (Balanca)

GRUP NGA Dega

duke pasur shumën ( Pjesa e mbetur ) 5 000;

Argumentet në një fjali DUKE respektoni të njëjtat rregulla si në fjali ZGJIDH ku përdoret GRUP NGA... Ata duhet të kenë një vlerë për grupin e daljes.


Komanda e mëposhtme do të ndalohet:

SELECT Degë, SUM (Balanca)

GRUPI SIPAS Degës

HAVING Data e hapjes = 27/12/2004 ;

Fusha Data e hapjes nuk mund të përdoret në një fjali DUKE sepse mund të ketë më shumë se një vlerë për grup dalës. Për të shmangur një situatë të tillë, propozimi DUKE duhet t'u referohet vetëm agregateve dhe fushave të zgjedhura GRUP NGA... Ekziston një mënyrë e saktë për të bërë pyetjen e mësipërme:

SELECT Degë, SUM (Balanca)

WHERE Data e hapjes = '27/12/2004'

GRUPI SIPAS Degës;


Kuptimi i këtij pyetësori është si më poshtë: gjeni shumën e gjendjeve për çdo degë të llogarive të hapura më 27 dhjetor 2004.

Siç u tha më herët, HAVING mund të përdorë vetëm argumente që kanë të njëjtën vlerë për grupin e daljes. Në praktikë, referencat për funksionet agregate janë më të përgjithshmet, por fushat e zgjedhura me GROUP BY janë gjithashtu të vlefshme. Për shembull, ne duam të shohim gjendjen totale të llogarive të degëve në Shën Petersburg, Pskov dhe Uryupinsk:

SELECT Degë, SUM (Balanca)

NGA F, Q

KU F. Dega = Q. Dega

GRUPI SIPAS Degës

KANË Degë NË (‘Shën Petersburg’, ‘Pskov’, ‘Uryupinsk’);

100,000; Nëse bilanci total është më shumë se 100,000 dollarë, atëherë do ta shohim në raportin që rezulton, përndryshe do të marrim një raport bosh. "gjerësia = 640"

Prandaj, në shprehjet aritmetike të kallëzuesve të përfshirë në kushtin e përzgjedhjes së klauzolës HAVING, mund të përdorni drejtpërdrejt vetëm specifikimet e kolonave të specifikuara si kolona grupimi në klauzolën GROUP BY. Pjesa tjetër e kolonave mund të specifikohet vetëm brenda specifikimeve të funksioneve agregate COUNT, SUM, AVG, MIN dhe MAX, të cilat në këtë rast llogarisin një vlerë agregate për të gjithë grupin e rreshtave. Rezultati i ekzekutimit të klauzolës HAVING është një tabelë e grupuar që përmban vetëm ato grupe rreshtash për të cilat rezultati i vlerësimit të kushtit të përzgjedhjes në pjesën HAVING është TRUE. Në veçanti, nëse një klauzolë HAVING është e pranishme në një pyetje që nuk përmban një GROUP BY, atëherë rezultati i ekzekutimit të tij do të jetë ose një tabelë bosh, ose rezultat i seksioneve të mëparshme të shprehjes së tabelës, i konsideruar si një grup pa grupimi i kolonave. Le të shohim një shembull. Le të themi se duam të shfaqim shumën totale të bilanceve për të gjitha degët, por vetëm nëse është më shumë se 100,000 dollarë. Në këtë rast, pyetja jonë nuk do të përmbajë operacione grupimi, por do të përmbajë një seksion HAVING dhe do të duket kështu:

ZGJIDH SHUMEN ( Pjesa e mbetur )

duke pasur shumën ( Pjesa e mbetur ) 100 000;

Nëse bilanci total është më shumë se 100,000 dollarë, atëherë do ta shohim në raportin që rezulton, përndryshe do të marrim një raport bosh.


Mund të kryejë përpunim të përgjithësuar në grup të vlerave të fushës. Kjo bëhet duke përdorur funksionet agregate. Funksionet agregate prodhojnë një vlerë të vetme për të gjithë grupin e tabelës. V SQL ofrohen funksionet e mëposhtme agregate:

  • COUNT- numëron numrin e rreshtave të tabelës me vlera jo NULL të fushës të specifikuar si argument.
  • SHUMË- llogarit shumën aritmetike të të gjitha vlerave të zgjedhura të fushës së dhënë.
  • AVG- kryen mesataren e të gjitha vlerave të zgjedhura të kësaj fushe.
  • MAX- shfaq vlerën më të madhe të të gjitha vlerave të zgjedhura për këtë fushë.
  • MIN- Nxjerr vlerën më të vogël të të gjitha vlerave të zgjedhura për këtë fushë.

    Përdorimi i funksioneve agregate

    Funksionet e grumbulluara përdoren si emrat e fushave në një fjali ZGJIDH pyetje, por me një përjashtim: ata marrin emrat e fushave si argumente. Vetëm fushat numerike mund të përdoren me SHUMË dhe AVG... ME COUNT, MAX, dhe MIN mund të përdoren si fushat numerike ashtu edhe ato të karaktereve. Kur përdoret me fushat e karaktereve MAX dhe MIN do t'i përkthejë ato në ekuivalentin ASCII. Do të thotë se MIN do të zgjedhë të parën dhe MAX vlera e fundit sipas rendit alfabetik.

    Për të gjetur shitjet totale në tabelën e shitjeve, duhet të shkruajmë pyetjen e mëposhtme:

    SELECT SUM (Sum) FROM Shitet

    Si rezultat, marrim:

    Ky pyetës ka numëruar numrin e vlerave jo bosh në fushën SNum të tabelës Shitet. Nëse e rishkruajmë kërkesën si më poshtë:

    SELECT COUNT (Data) FROM Shitet

    Pastaj si rezultat marrim:

    NUMRI I datës
    4

    Rezultate të ndryshme të pyetjeve kur llogariten në dukje të njëjta merren sepse një nga vlerat e fushës SDate ka një vlerë boshe ( I PAVLEFSHËM). Kini kujdes kur përdorni kërkesa të tilla.

Artikujt kryesorë të lidhur