Suma SQL cu condiție. Calcule în sql

În acest tutorial veți învăța cum să utilizați Funcția SUMîn SQL Server (Transact-SQL) cu sintaxă și exemple.

Descriere

În SQL Server (Transact-SQL) Funcția SUM returnează valoarea totală a unei expresii.

Sintaxă

Sintaxa pentru funcția SUM în SQL Server (Transact-SQL) este:

SAU sintaxa pentru funcția SUM la gruparea rezultatelor după una sau mai multe coloane este:

Parametri sau Argumente

expresie1 , expresie2 , ... expresie_n sunt expresii care nu sunt incluse în funcția SUM și trebuie incluse în clauza GROUP BY la sfârșitul instrucțiunii SQL.
expresie_agregată este coloana sau expresia care va fi agregată.
tabele - tabele din care doriți să obțineți înregistrări. Trebuie să existe cel puțin un tabel listat în clauza FROM.
Condiții WHERE - opțional. Acestea sunt condiții care trebuie îndeplinite pentru înregistrările selectate.

Aplicație

Funcția SUM poate fi utilizată în următoarele versiuni de SQL Server (Transact-SQL):
SQL Server vNext, SQL Server 2016, SQL Server 2015, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005

Exemplu cu un câmp

Să ne uităm la câteva exemple de funcții SUM SQL Server pentru a înțelege cum să utilizați funcția SUM în SQL Server (Transact-SQL).

De exemplu, puteți afla cantitatea totală a tuturor produselor a căror cantitate este mai mare de 10.

În acest exemplu de funcție SUM, am alias expresia SUM(cantitate) „Cantitate totală”. Când returnați un set de rezultate - „Cantitatea totală” va apărea ca nume de câmp.

Exemplu de utilizare a DISTINCT

Puteți utiliza operatorul DISTINCT în funcția SUM. De exemplu, instrucțiunea SQL de mai jos returnează salariul total cu valori unice ale salariului unde salariul este sub 29.000 USD pe an.

Dacă cele două salarii ar fi de 24.000 USD pe an, doar una dintre acele valori ar fi folosită în funcția SUM.

Exemplu de utilizare a formulei

Expresia conținută în funcția SUM nu trebuie să fie un singur câmp. Puteți folosi și formula. De exemplu, puteți calcula comisionul total.

Transact-SQL

SELECTAȚI SUMA (vânzări * 0,03) CA „Comision total” FROM comenzi;

SELECTAȚI SUMA (vânzări * 0,03) CA „Comision total”

DIN comenzi;

Exemplu de utilizare GROUP BY

În unele cazuri, va trebui să utilizați operatorul GROUP BY cu funcția SUM.

Cum pot afla numărul de modele de PC produse de un anumit furnizor? Cum se determină prețul mediu al calculatoarelor cu aceleași caracteristici tehnice? Acestea și multe alte întrebări legate de unele informații statistice pot fi răspuns folosind funcții finale (agregate).. Standardul oferă următoarele funcții agregate:

Toate aceste funcții returnează o singură valoare. În același timp, funcțiile COUNT, MINȘi MAX aplicabil oricărui tip de date, în timp ce SUMĂȘi AVG sunt utilizate numai pentru câmpurile numerice. Diferența între funcție NUMARA(*)Și NUMARA(<имя поля>) este că al doilea nu ia în considerare valorile NULL la calcul.

Exemplu. Găsiți prețul minim și maxim pentru computerele personale:

Exemplu. Găsiți numărul disponibil de computere produse de producătorul A:

Exemplu. Dacă ne interesează numărul de modele diferite produse de producătorul A, atunci interogarea poate fi formulată după cum urmează (folosind faptul că în tabelul Produs fiecare model este înregistrat o dată):

Exemplu. Găsiți numărul de modele diferite disponibile produse de producătorul A. Interogarea este similară cu cea anterioară, în care era necesar să se determine numărul total de modele produse de producătorul A. Aici trebuie să găsiți și numărul de modele diferite în masa PC (adică cele disponibile pentru vânzare).

Pentru a se asigura că numai valorile unice sunt utilizate la obținerea indicatorilor statistici, când argumentul funcţiilor agregate poate fi folosit parametru DISTINCT. O alta parametrul ALL este implicit și presupune că toate valorile returnate în coloană sunt numărate. Operator,

Dacă trebuie să obținem numărul de modele de PC produse toata lumea producător, va trebui să utilizați Clauza GROUP BY, urmând sintactic după clauze WHERE.

Clauza GROUP BY

Clauza GROUP BY folosit pentru a defini grupuri de linii de ieșire la care se pot aplica funcții agregate (COUNT, MIN, MAX, AVG și SUM). Dacă această clauză lipsește și sunt utilizate funcții de agregare, atunci toate coloanele cu nume menționate în SELECTAȚI, ar trebui incluse în funcții agregate, iar aceste funcții vor fi aplicate întregului set de rânduri care satisfac predicatul de interogare. În caz contrar, toate coloanele din lista SELECT nu este inclusîn funcţii agregate trebuie specificate în clauza GROUP BY. Ca urmare, toate rândurile de interogare de ieșire sunt împărțite în grupuri caracterizate prin aceleași combinații de valori în aceste coloane. După aceasta, funcțiile agregate vor fi aplicate fiecărui grup. Vă rugăm să rețineți că pentru GROUP BY toate valorile NULL sunt tratate ca fiind egale, de exemplu. la gruparea după un câmp care conține valori NULL, toate aceste rânduri vor intra într-un singur grup.
Dacă dacă există o clauză GROUP BY, în clauza SELECT fără funcții agregate, atunci interogarea va returna pur și simplu un rând din fiecare grup. Această caracteristică, împreună cu cuvântul cheie DISTINCT, poate fi utilizată pentru a elimina rândurile duplicate dintr-un set de rezultate.
Să ne uităm la un exemplu simplu:
SELECT model, COUNT(model) AS Cantitate_model, AVG(preț) AS Avg_price
DE LA PC
GROUP BY model;

În această solicitare, pentru fiecare model de PC se determină numărul și costul mediu al acestora. Toate rândurile cu aceeași valoare a modelului formează un grup, iar rezultatul SELECT calculează numărul de valori și valorile prețurilor medii pentru fiecare grup. Rezultatul interogării va fi următorul tabel:
model Cantitate_model Avg_price
1121 3 850.0
1232 4 425.0
1233 3 843.33333333333337
1260 1 350.0

Dacă SELECT ar avea o coloană de dată, atunci ar fi posibil să se calculeze acești indicatori pentru fiecare dată specifică. Pentru a face acest lucru, trebuie să adăugați data ca coloană de grupare, iar apoi funcțiile agregate vor fi calculate pentru fiecare combinație de valori (model-data).

Sunt mai multe specifice reguli pentru îndeplinirea funcţiilor agregate:

  • Dacă în urma cererii nu au primit rânduri(sau mai mult de un rând pentru un anumit grup), atunci nu există date sursă pentru calcularea vreuneia dintre funcțiile agregate. În acest caz, rezultatul funcțiilor COUNT va fi zero, iar rezultatul tuturor celorlalte funcții va fi NULL.
  • Argument functie de agregat nu poate conține în sine funcții agregate(funcție din funcție). Acestea. într-o singură interogare este imposibil, să zicem, să se obțină maximul de valori medii.
  • Rezultatul executării funcției COUNT este întreg(ÎNTREG). Alte funcții agregate moștenesc tipurile de date ale valorilor pe care le procesează.
  • Dacă funcția SUM produce un rezultat care este mai mare decât valoarea maximă a tipului de date utilizat, eroare.

Deci, dacă cererea nu conține clauze GROUP BY, Acea funcții agregate inclus în clauza SELECT, sunt executate pe toate rândurile de interogare rezultate. Dacă cererea conţine Clauza GROUP BY, fiecare set de rânduri care are aceleași valori ale unei coloane sau ale unui grup de coloane specificate în Clauza GROUP BY, alcătuiește un grup și funcții agregate sunt efectuate pentru fiecare grupă separat.

AVÂND oferta

Dacă clauza WHERE definește un predicat pentru filtrarea rândurilor, apoi AVÂND oferta se aplică după grupare pentru a defini un predicat similar care filtrează grupurile după valori funcții agregate. Această clauză este necesară pentru a valida valorile care se obțin folosind functie de agregat nu din rândurile individuale ale sursei de înregistrare definite în clauza FROM, și de la grupuri de astfel de linii. Prin urmare, un astfel de control nu poate fi inclus în clauza WHERE.

Funcția SUM în limbajul SQL, în ciuda simplității sale, este folosită destul de des atunci când se lucrează cu o bază de date. Cu ajutorul acestuia, este convenabil să obții niște rezultate intermediare sau finale fără a apela la ajutorul instrumentelor auxiliare DBMS.

Sintaxa funcției

În majoritatea limbajelor SQL, sintaxa sumei este aceeași - doar numele câmpului sau o operație aritmetică a mai multor dintre ele este folosită ca argument, peste care este necesară suma.

În cazuri excepționale, este posibil să se transmită o anumită valoare ca număr sau variabilă, dar astfel de „scheme” practic nu sunt utilizate, deoarece nu au prea multă valoare. Mai jos este sintaxa funcției în SQL:

sum(a) - aici o valoare numerică sau expresie este folosită ca parametru a

Este de remarcat faptul că înainte de parametru puteți seta cuvinte cheie, de exemplu, DISTINCT sau ALL, care vor lua numai valori unice sau, respectiv, toate.

Exemplu de utilizare a SUM în SQL

Pentru a înțelege pe deplin cum funcționează funcția, merită să luăm în considerare câteva exemple. În SQL, SUM poate fi folosit atât ca rezultat returnat, cât și ca valoare intermediară, de exemplu, pentru a testa o condiție.

Pentru primul caz, luați în considerare opțiunea când trebuie să returnați suma vânzărilor pentru fiecare produs, ținând cont de faptul că numărul de achiziții efectuate poate fi la plural. Pentru a obține rezultatul, va fi suficient să rulați următoarea interogare:

SELECT Product, sum(PurchaseAmount) FROM Sales GroupBy Product;

Răspunsul la această comandă va fi o listă unică de produse cu suma totală de achiziție pentru fiecare dintre ele.

Pentru al doilea exemplu, trebuie să obțineți o listă de produse ale căror vânzări a depășit o anumită valoare, de exemplu, 100. Puteți obține rezultatul pentru această sarcină în mai multe moduri, dintre care cel mai optim este executarea unei cereri:

SELECT Product FROM (SELECT Product, sum(Purchase Value) ca suma din vânzări) WHERE Sum > 100.

SQL - Lecția 11. Total funcții, coloane calculate și vizualizări

Funcțiile totale sunt numite și funcții statistice, agregate sau de sumă. Aceste funcții procesează un set de șiruri de caractere pentru a număra și a returna o singură valoare. Există doar cinci astfel de funcții:
  • Funcția AVG() returnează valoarea medie a unei coloane.

  • Funcția COUNT() returnează numărul de rânduri dintr-o coloană.

  • Funcția MAX() returnează cea mai mare valoare dintr-o coloană.

  • Funcția MIN() returnează cea mai mică valoare din coloană.

  • SUM() Funcția returnează suma valorilor coloanei.

Ne-am întâlnit deja pe unul dintre ei - COUNT() - în lecția 8. Acum să-i întâlnim pe ceilalți. Să presupunem că am vrut să știm prețul minim, maxim și mediu al cărților din magazinul nostru. Apoi, din tabelul de prețuri, trebuie să luați valorile minime, maxime și medii pentru coloana de preț. Cererea este simpla:

SELECT MIN(preț), MAX(preț), AVG(preț) FROM prețuri;

Acum, vrem să aflăm cât de mult ne-a fost adusă marfa de către furnizorul „House of Printing” (id=2). A face o astfel de cerere nu este atât de ușor. Să ne gândim cum să-l compunem:

1. Mai întâi, din tabelul Consumabile (incoming), selectați identificatorii (id_incoming) ale acelor livrări care au fost efectuate de furnizorul „Print House” (id=2):

2. Acum din tabelul Jurnal de aprovizionare (magazine_incoming) trebuie să selectați mărfurile (id_product) și cantitățile acestora (cantitate), care au fost efectuate în livrările găsite la punctul 1. Adică, interogarea de la punctul 1 devine imbricată:

3. Acum trebuie să adăugăm la tabelul rezultat prețurile pentru produsele găsite, care sunt stocate în tabelul Prețuri. Adică, va trebui să ne înscriem în tabelele Supply Magazine (magazine_incoming) și Prices folosind coloana id_product:

4. Tabelului rezultat lipsește clar coloana Sumă, adică coloană calculată. Capacitatea de a crea astfel de coloane este oferită în MySQL. Pentru a face acest lucru, trebuie doar să specificați în interogare numele coloanei calculate și ce ar trebui să calculeze. În exemplul nostru, o astfel de coloană se va numi summa și va calcula produsul dintre coloanele cantitate și preț. Numele noii coloane este separat prin cuvântul AS:

SELECT magazin_incoming.id_product, magazine_incoming.quantity, price.price, magazine_incoming.quantity*prices.price AS summa FROM magazine_incoming, prețuri WHERE magazine_incoming.id_product= price.id_product AND id_incoming= (SELECTIȚI id_incoming FROM incoming WHERE id_vendor=2);

5. Grozav, tot ce trebuie să facem este să adunăm coloana suma și, în sfârșit, să aflăm pentru cât ne-a adus furnizorul „House of Printing” marfa. Sintaxa pentru utilizarea funcției SUM() este următoarea:

SELECTAȚI SUM(nume_coloană) FROM nume_tabel;

Cunoaștem numele coloanei - summa, dar nu avem numele tabelului, deoarece este rezultatul unei interogări. Ce să fac? Pentru astfel de cazuri, MySQL are Vizualizări. O vizualizare este o interogare de selecție căreia i se dă un nume unic și poate fi stocată într-o bază de date pentru utilizare ulterioară.

Sintaxa pentru crearea unei vizualizări este următoarea:

CREATE VIEW view_name AS cerere;

Să salvăm solicitarea noastră ca vizualizare numită report_vendor:

CREATE VIEW report_vendor AS SELECT magazine_incoming.id_product, magazine_incoming.quantity, price.price, magazine_incoming.quantity*prices.price AS summa FROM magazine_incoming, prețuri WHERE magazine_incoming.id_product= price.id_product AND id_incoming= (SELECT id_incoming=22 FROM incoming) );

6. Acum puteți utiliza funcția finală SUM():

SELECTAȚI SUM(summa) FROM raport_furnizor;

Așa că am obținut rezultatul, deși pentru aceasta a trebuit să folosim interogări imbricate, îmbinări, coloane calculate și vizualizări. Da, uneori trebuie să te gândești pentru a obține rezultate, fără asta nu poți ajunge nicăieri. Dar am atins două subiecte foarte importante - coloane calculate și vizualizări. Să vorbim despre ele mai detaliat.

Câmpuri calculate (coloane)

Folosind un exemplu, ne-am uitat astăzi la un câmp calculat matematic. Aici aș dori să adaug că puteți folosi nu numai operația de înmulțire (*), ci și scăderea (-), adunarea (+) și împărțirea (/). Sintaxa este următoarea:

SELECT nume_coloană 1, nume_coloană 2, nume_coloană 1 * nume_coloană 2 AS calculated_column_name FROM table_name;

A doua nuanță este cuvântul cheie AS, l-am folosit pentru a seta numele coloanei calculate. De fapt, acest cuvânt cheie este folosit pentru a seta aliasuri pentru orice coloană. De ce este necesar acest lucru? Pentru reducerea codului și lizibilitatea. De exemplu, viziunea noastră ar putea arăta astfel:

CREATE VIEW report_vendor AS SELECT A.id_product, A.quantity, B.price, A.quantity*B.price AS summa FROM magazine_incoming AS A, preturi AS B WHERE A.id_product= B.id_product AND id_incoming= (SELECT ID_incoming FROM incoming WHERE id_vendor=2);

De acord că acest lucru este mult mai scurt și mai clar.

Reprezentare

Ne-am uitat deja la sintaxa pentru crearea vizualizărilor. Odată ce vizualizările sunt create, acestea pot fi utilizate în același mod ca și tabelele. Adică, executați interogări împotriva acestora, filtrați și sortați datele și combinați unele vizualizări cu altele. Pe de o parte, aceasta este o modalitate foarte convenabilă de a stoca interogări complexe utilizate frecvent (ca în exemplul nostru).

Dar rețineți că vizualizările nu sunt tabele, adică nu stochează date, ci doar le preiau din alte tabele. Prin urmare, în primul rând, atunci când datele din tabele se schimbă, rezultatele prezentării se vor schimba și ele. Și în al doilea rând, atunci când se face o solicitare către o vizualizare, datele necesare sunt căutate, adică performanța DBMS este redusă. Prin urmare, nu ar trebui să abuzați de ele.

Să învățăm să rezumam. Nu, acestea nu sunt rezultatele studiului SQL, ci rezultatele valorilor coloanelor tabelelor bazei de date. Funcțiile de agregare SQL operează pe valorile coloanei pentru a produce o singură valoare rezultată. Cele mai frecvent utilizate funcții de agregare SQL sunt SUM, MIN, MAX, AVG și COUNT. Este necesar să se facă distincția între două cazuri de utilizare a funcțiilor agregate. În primul rând, funcțiile agregate sunt utilizate pe cont propriu și returnează o singură valoare de rezultat. În al doilea rând, funcțiile de agregare sunt utilizate cu clauza SQL GROUP BY, adică gruparea după câmpuri (coloane) pentru a obține valorile rezultate în fiecare grup. Să luăm în considerare mai întâi cazurile de utilizare a funcțiilor agregate fără grupare.

Funcția SQL SUM

Funcția SQL SUM returnează suma valorilor dintr-o coloană a tabelului bazei de date. Poate fi aplicat numai coloanelor ale căror valori sunt numere. Interogările SQL pentru a obține suma rezultată încep astfel:

SELECTAȚI SUMA (COLUMN_NAME)...

Această expresie este urmată de FROM (TABLE_NAME) și apoi poate fi specificată o condiție folosind clauza WHERE. În plus, numele coloanei poate fi precedat de DISTINCT, ceea ce înseamnă că vor fi numărate numai valorile unice. În mod implicit, toate valorile sunt luate în considerare (pentru aceasta puteți specifica în mod specific nu DISTINCT, ci TOATE, dar cuvântul TOATE nu este necesar).

Dacă doriți să rulați interogări de baze de date din această lecție pe MS SQL Server, dar acest SGBD nu este instalat pe computerul dvs., atunci îl puteți instala folosind instrucțiunile de la acest link .

Mai întâi vom lucra cu baza de date a companiei - Company1. Scriptul pentru crearea acestei baze de date, tabelele acesteia și completarea tabelelor cu date se află în fișierul de la acest link .

Exemplul 1. Există o bază de date a companiei cu date despre diviziile și angajații săi. Tabelul Personal are și o coloană cu date despre salariile angajaților. Selecția din tabel arată astfel (pentru a mări imaginea, faceți clic pe ea cu butonul stâng al mouse-ului):

Pentru a obține suma tuturor salariilor, folosim următoarea interogare (pe MS SQL Server - cu compania anterioară USE de construcție1;):

SELECTAȚI SUMA (Salariu) FROM Personal

Această interogare va returna valoarea 287664.63.

Si acum . În exerciții începem deja să complicăm sarcinile, apropiindu-le de cele întâlnite în practică.

Funcția SQL MIN

Funcția SQL MIN operează și pe coloanele ale căror valori sunt numere și returnează minimul tuturor valorilor din coloană. Această funcție are o sintaxă similară cu cea a funcției SUM.

Exemplul 3. Baza de date și tabelul sunt aceleași ca în exemplul 1.

Trebuie să aflăm salariul minim pentru angajații departamentului numărul 42. Pentru a face acest lucru, scrieți următoarea interogare (pe MS SQL Server - cu prefixul USE company1;):

Interogarea va returna valoarea 10505.90.

Și din nou exercițiu pentru auto-rezolvare. În acest exercițiu și în alte câteva exerciții, veți avea nevoie nu numai de tabelul Staff, ci și de tabelul Org, care conține date despre diviziile companiei:


Exemplul 4. Tabelul Org este adăugat la tabelul Staff, care conține date despre departamentele companiei. Tipăriți numărul minim de ani lucrați de un angajat într-un departament situat în Boston.

Funcția SQL MAX

Funcția SQL MAX funcționează în mod similar și are o sintaxă similară, care este utilizată atunci când trebuie să determinați valoarea maximă dintre toate valorile dintr-o coloană.

Exemplul 5.

Trebuie să aflăm salariul maxim al angajaților din departamentul numărul 42. Pentru a face acest lucru, scrieți următoarea interogare (pe MS SQL Server - cu prefixul USE company1;):

Interogarea va returna valoarea 18352.80

Este timpul exerciții pentru rezolvare independentă.

Exemplul 6. Lucrăm din nou cu două mese - Staff și Org. Afișează numele departamentului și valoarea maximă a comisionului primit de un angajat din departamentul aparținând grupului de departamente (Divizia) Est. Utilizare JOIN (aderarea la mese) .

Funcția SQL AVG

Ceea ce se spune cu privire la sintaxa pentru funcțiile descrise anterior este valabil și pentru funcția SQL AVG. Această funcție returnează media tuturor valorilor dintr-o coloană.

Exemplul 7. Baza de date și tabelul sunt aceleași ca în exemplele anterioare.

Să presupunem că doriți să aflați vechimea medie a angajaților din departamentul numărul 42. Pentru a face acest lucru, scrieți următoarea interogare (pe MS SQL Server - cu compania anterioară USE de construcție1;):

Rezultatul va fi 6,33

Exemplul 8. Lucrăm cu o singură masă - Personal. Afișați salariul mediu al angajaților cu 4 până la 6 ani de experiență.

Funcția SQL COUNT

Funcția SQL COUNT returnează numărul de înregistrări dintr-un tabel de bază de date. Dacă specificați SELECT COUNT(COLUMN_NAME) ... în interogare, rezultatul va fi numărul de înregistrări fără a lua în considerare acele înregistrări în care valoarea coloanei este NULL (nedefinită). Dacă utilizați un asterisc ca argument și începeți o interogare SELECT COUNT(*) ..., rezultatul va fi numărul tuturor înregistrărilor (rândurilor) din tabel.

Exemplul 9. Baza de date și tabelul sunt aceleași ca în exemplele anterioare.

Vrei să știi numărul tuturor angajaților care primesc comisioane. Numărul de angajați ale căror valori ale coloanei Comm nu sunt NULL va fi returnat de următoarea interogare (pe MS SQL Server - cu prefixul USE company1;):

SELECTARE NUMĂR (Comm) FROM Staff

Rezultatul va fi 11.

Exemplul 10. Baza de date și tabelul sunt aceleași ca în exemplele anterioare.

Dacă doriți să aflați numărul total de înregistrări din tabel, atunci utilizați o interogare cu un asterisc ca argument pentru funcția COUNT (pe MS SQL Server - cu construcția anterioară USE company1;):

SELECTAȚI NUMĂRUL (*) DIN Personal

Rezultatul va fi 17.

În urmatoarele exercițiu pentru soluție independentă va trebui să utilizați o subinterogare.

Exemplul 11. Lucrăm cu o singură masă - Personal. Afișați numărul de angajați din departamentul de planificare (Plains).

Funcții de agregare cu SQL GROUP BY

Acum să ne uităm la utilizarea funcțiilor agregate împreună cu instrucțiunea SQL GROUP BY. Instrucțiunea SQL GROUP BY este utilizată pentru a grupa valorile rezultate pe coloane într-un tabel al bazei de date. Site-ul are lectie dedicata separat acestui operator .

Vom lucra cu baza de date „Ads Portal 1”. Scriptul pentru crearea acestei baze de date, tabelul acesteia și completarea tabelului de date se află în fișierul de la acest link .

Exemplul 12. Deci, există o bază de date a portalului de reclame. Are un tabel de anunțuri care conține date despre anunțurile trimise pentru săptămână. Coloana Categorie conține date despre categorii mari de anunțuri (de exemplu, Imobiliare), iar coloana Piese conține date despre părți mai mici incluse în categorii (de exemplu, părțile Apartamente și Case de vară fac parte din categoria Imobiliare). Coloana Unități conține date despre numărul de reclame trimise, iar coloana Bani conține date despre suma de bani primită pentru trimiterea reclamelor.

CategorieParteUnitățiBani
TransportMașini110 17600
ImobiliareApartamente89 18690
ImobiliareDachas57 11970
TransportMotociclete131 20960
Materiale de construcțieScânduri68 7140
Inginerie Electricătelevizoare127 8255
Inginerie ElectricăFrigidere137 8905
Materiale de construcțieRegips112 11760
Timp liberCărți96 6240
ImobiliareAcasă47 9870
Timp liberMuzică117 7605
Timp liberJocuri41 2665

Folosind instrucțiunea SQL GROUP BY, găsiți suma de bani câștigată prin postarea de anunțuri în fiecare categorie. Scriem următoarea interogare (pe MS SQL Server - cu construcția anterioară USE adportal1;):

SELECTAȚI Categoria, SUMA (Bani) CA Bani DIN GRUPUL DE Anunțuri după categorie

Exemplul 13. Baza de date și tabelul sunt aceleași ca în exemplul anterior.

Folosind instrucțiunea SQL GROUP BY, aflați care parte din fiecare categorie a avut cele mai multe listări. Scriem următoarea interogare (pe MS SQL Server - cu construcția anterioară USE adportal1;):

SELECTARE Categoria, Piesa, MAX (Unități) AS Maximum FROM ADS GROUP BY Category

Rezultatul va fi următorul tabel:

Valorile totale și individuale pot fi obținute într-un singur tabel combinarea rezultatelor interogării folosind operatorul UNION .

Baze de date relaționale și limbaj SQL