Sadržaj
Grupne funkcije ugrađene su u SQL funkcije koje djeluju na grupe redaka i vraćaju vrijednost za cijelu grupu. Ove funkcije su: GRUPA, HAVING, COUNT, MAX, MIN, AVG, SUM, DISTINCT.Klauzula GRUPA PO koristi se zajedno s grupnim funkcijama za dohvaćanje podataka grupiranih prema jednom ili više stupaca.
Međuzbrojevi se mogu dobiti klauzulom GROUP BY. Upit s klauzulom GROUP BY naziva se grupirani upit jer grupira podatke u izvornoj tablici i proizvodi jedan sažeti redak za svaku formiranu grupu. Stupci navedeni u GROUP BY nazivaju se stupci grupiranja.
Pretpostavimo prodajnu tablicu sa sljedećim poljima
Id | proizvod | cijena | količina | id prodavač
Primjer:
ODABERITE ZBIR (cijena) kao ukupnu prodaju OD prodaje
Dobiva zbroj ukupne prodaje koja je ostvarena, vrijednost se dodjeljuje ukupnoj prodaji
ODABERITE ZBIR (prodaja) IZ GRUPE PRODAJE PO zaposleniku ID -aGrupa se formira za svakog zaposlenika i zbroj se računa po redovima svake grupe. U prethodnom primjeru dobiva se popis sa zbrojem prodaje svakog zaposlenika.
Upit bi bilo bolje uključiti u popis za izbor ime zaposlenika kako bi se znalo kojem zaposleniku odgovara zbir prodaje:
SELECT zaposlenici.ime, ZBIR (cijena) KAO prodaja po zaposleniku OD prodaje, zaposlenici Gdje je prodaja.zaposlenik = zaposlenici.zaposlenik GRUPA PO zaposleniku
Samo:
konstantne vrijednosti
funkcije stupaca
grupiranje stupaca (stupci koji se pojavljuju u klauzuli GROUP BY)
ili bilo koji izraz koji se temelji na gore navedenom.
Primjer: Želimo da imamo podružnice i želimo dobiti zbroj prodaje zaposlenika grupiranih prema regiji i gradu:
ODABERITE ZBIR (cijena) kao prodaju po poslovnicama IZ SKUPINE PRODAJE PO regiji, gradu
Prvo je grupirano po regijama, a unutar svake regije po gradovima.
Svi retci koji imaju nultu vrijednost u polju za grupiranje postaju jedna grupa. Odnosno, nultu vrijednost tretira kao bilo koju vrijednost za svrhe grupiranja.
Klauzula HAVING
Klauzula HAVING omogućuje nam odabir redaka iz tablice koji su rezultat upita o grupiranju
U uvjetu odabira mogu se pojaviti samo sljedeće:
konstantne vrijednosti
funkcije stupaca
grupiranje stupaca (stupci koji se pojavljuju u klauzuli GROUP BY)
ili bilo koji izraz koji se temelji na gore navedenom.
Primjer: Želimo znati koji su zaposlenici prodali više od 10.000 eura
ODABERITE * OD GRUPE U PRODAJI PO ZAPOSLENIMA KOJI IMAJU Prosj. (Cijena)> 10000
Da bismo dobili ono što se traži, moramo izračunati prosječnu prodaju zaposlenika. Moramo grupirati zaposlenike prema ID -u i izračunati prosjek za svaku prodaju po zaposleniku, na kraju moramo iz rezultata odabrati retke koji imaju prosjek veći više od 10.000.
Kako se unutarnji pokreće grupni upit?
Prvo se formira tablica izvora podataka prema klauzuli FROM,
retci su odabrani iz izvora podataka prema odredbi WHERE,
grupe redaka formiraju se prema klauzuli GROUP BY,
Za svaku skupinu dobiva se red u rezultirajućoj tablici s vrijednostima koje se pojavljuju u klauzulama GROUP BY, HAVING i na popisu za odabir,
redovi su odabrani iz rezultirajuće tablice prema klauzuli HAVING,
stupci koji se ne pojavljuju na popisu za odabir uklanjaju se iz rezultirajuće tablice,
redovi dobivene tablice poredani su prema klauzuli ***** BY
Upit postaje grupni upit čim se pojavi GROUP BY, HAVING ili funkcija stupca.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod