SQL grupas funkcijas

Satura rādītājs

Grupas funkcijas ir iebūvētas SQL funkcijās, kas darbojas rindu grupās un atgriež vērtību visai grupai. Šīs funkcijas ir: GROUP, HAVING, COUNT, MAX, MIN, AVG, SUM, DISTINCT.
Klauzula GROUP BY izmanto kopā ar grupas funkcijām, lai izgūtu datus, kas sagrupēti pēc vienas vai vairākām kolonnām.
Starpsummas var iegūt ar klauzulu GROUP BY. Vaicājumu ar klauzulu GROUP BY sauc par grupētu vaicājumu, jo tas grupē avota tabulas datus un katrai izveidotajai grupai izveido vienu kopsavilkuma rindu. GROUP BY norādītās kolonnas sauc par grupēšanas kolonnām.
Pieņemsim, ka pārdošanas tabula ar šādiem laukiem
Id | produkts | cena | daudzums | id pārdevējs
Piemērs:
Izvēlieties SUM (cena) kā kopējos pārdošanas apjomus no pārdošanas
Iegūst kopējo pārdošanas apjomu summu, vērtība tiek piešķirta kopējiem pārdošanas apjomiem
ATLASI SUMMU (pārdošanu) NO PĀRDOŠANAS GRUPAS PIE ID darbinieka
Katram darbiniekam tiek izveidota grupa, un summa tiek aprēķināta katras grupas rindās. Iepriekšējā piemērā tiek iegūts saraksts ar katra darbinieka pārdošanas summu.
Vaicājums būtu labāk iekļaut atlases sarakstā darbinieka vārdu, lai uzzinātu, kuram darbiniekam atbilst pārdošanas summa:
 SELECT darbinieki

Tikai:
nemainīgas vērtības
kolonnu funkcijas
grupēšanas kolonnas (slejas GROUP BY)
vai jebkura izteiksme, kas balstīta uz iepriekš minēto.
Piemērs: Mēs vēlamies, ja mums būtu filiāles un mēs vēlētos iegūt darbinieku pārdošanas summu, kas sagrupēta pēc reģiona un pilsētas:
 IZVĒLIES SUMMU (cenu) kā pārdošanu pa filiālēm NO PĀRDOŠANAS GRUPAS PĒC reģiona, pilsētas

Tas vispirms ir sagrupēts pēc reģiona un katrā reģionā - pēc pilsētas.
Visas rindas, kurām grupēšanas laukā ir nulles vērtība, kļūst par vienu grupu. Tas nozīmē, ka nulles vērtību tā uzskata par jebkuru vērtību grupēšanas nolūkos.
Klauzula HAVING
Klauzula HAVING ļauj mums tabulā atlasīt rindas, kas izriet no grupēšanas vaicājuma
Atlases nosacījumā var parādīties tikai:
nemainīgas vērtības
kolonnu funkcijas
grupēšanas kolonnas (slejas GROUP BY)
vai jebkura izteiksme, kas balstīta uz iepriekš minēto.
Piemērs: Mēs vēlamies uzzināt, kuri darbinieki pārdeva vairāk nekā 10 000 eiro
 ATLASIET * PĀRDOŠANAS GRUPĀ PĒC idemployee AR AVG (cena)> 10000

Lai iegūtu pieprasīto, mums jāaprēķina darbinieku vidējais pārdošanas apjoms. Mums ir jāklasificē darbinieki pēc ID un jāaprēķina vidējais rādītājs katram pārdošanas apjomam uz vienu darbinieku, visbeidzot, no rezultāta jāizvēlas rindas, kuru vidējais rādītājs ir augstāks nekā 10 000.
Kā grupas vaicājums tiek izpildīts iekšēji?
Vispirms datu avota tabula tiek veidota saskaņā ar klauzulu FROM,
rindas tiek atlasītas no datu avota saskaņā ar WHERE klauzulu,
rindu grupas tiek veidotas saskaņā ar klauzulu GROUP BY,
Katrai grupai iegūtajā tabulā tiek iegūta rinda ar vērtībām, kas parādās GROUP BY, HAVING klauzulās un atlases sarakstā,
rindas tiek atlasītas no iegūtās tabulas saskaņā ar klauzulu HAVING,
kolonnas, kas nav redzamas atlases sarakstā, tiek noņemtas no iegūtās tabulas,
iegūtās tabulas rindas ir sakārtotas saskaņā ar klauzulu ***** BY
Vaicājums kļūst par grupas vaicājumu, tiklīdz parādās GROUP BY, HAVING vai kolonnas funkcija.Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu
wave wave wave wave wave