SQL -gruppfunktioner

Innehållsförteckning

Gruppfunktioner är inbyggda i SQL -funktioner som fungerar på grupper av rader och returnerar ett värde för hela gruppen. Dessa funktioner är: GROUP, HAVING, COUNT, MAX, MIN, AVG, SUM, DISTINCT.
Klausulen GRUPP AV används tillsammans med gruppfunktioner för att hämta data grupperade enligt en eller flera kolumner.
Delsummor kan erhållas med GROUP BY -klausulen. En fråga med en GROUP BY -sats kallas en grupperad fråga eftersom den grupperar data i källtabellen och producerar en enda sammanfattningsrad för varje bildad grupp. Kolumnerna som anges i GROUP BY kallas grupperingskolumner.
Antag en försäljningstabell med följande fält
Id | produkt | pris | kvantitet | id säljare
Exempel:
VÄLJ SUMMA (pris) som total försäljning FRÅN försäljning
Hämtar summan av den totala försäljningen som gjordes, värdet tilldelas den totala försäljningen
VÄLJ SUMMA (försäljning) FRÅN försäljningsgrupp FÖR id -anställd
En grupp bildas för varje anställd och summan beräknas över raderna i varje grupp. Det föregående exemplet får en lista med summan av försäljningen för var och en av de anställda.
Frågan skulle vara bättre att inkludera namnet på den anställde i urvalslistan för att veta vilken anställd summan av försäljningen motsvarar:
 VÄLJ anställdas namn, SUMMA (pris) SOM säljare genom anställd FRÅN försäljning, anställda Där försäljning.medarbetare = anställda.medarbetare GRUPP EFTER ideemployee

Endast:
konstanta värden
kolumnfunktioner
gruppera kolumner (kolumner som visas i GROUP BY -satsen)
eller något uttryck baserat på ovanstående.
Exempel: Vi vill om vi hade filialer och vi skulle vilja få summan av försäljningen av de anställda grupperade efter region och stad:
 VÄLJ SUMMA (pris) som försäljning per filial FRÅN försäljningsGRUPP EFTER region, stad

Det grupperas först efter region och inom varje region efter stad.
Alla rader som har ett nollvärde i gruppfältet blir en enda grupp. Det vill säga, det behandlar nollvärdet som vilket värde som helst för gruppering.
HAVING -klausulen
Med HAVING -klausulen kan vi välja rader från tabellen som härrör från en gruppfråga
Endast följande kan visas i urvalsvillkoret:
konstanta värden
kolumnfunktioner
gruppera kolumner (kolumner som visas i GROUP BY -satsen)
eller något uttryck baserat på ovanstående.
Exempel: Vi vill veta vilka anställda som sålde mer än 10 000 euro
 VÄLJ * FRÅN försäljningsgruppen PER id -anställd HAR AVG (pris)> 10000

För att få det som efterfrågas måste vi beräkna medarbetarnas genomsnittliga försäljning. Vi måste gruppera anställda efter id och beräkna genomsnittet för varje försäljning per anställd, slutligen måste vi välja från resultatet de rader som har ett genomsnitt högre än 10 000.
Hur körs en gruppfråga internt?
Först bildas datakälltabellen enligt FROM -klausulen,
raderna väljs från datakällan enligt WHERE -klausulen,
radgrupper bildas enligt GROUP BY -klausulen,
För varje grupp erhålls en rad i den resulterande tabellen med de värden som visas i GROUP BY, HAVING -klausulerna och i urvalslistan,
raderna väljs från den resulterande tabellen enligt HAVING -satsen,
kolumner som inte visas i urvalslistan tas bort från den resulterande tabellen,
raderna i den resulterande tabellen ordnas enligt ***** BY -satsen
En fråga blir en gruppfråga så snart GROUP BY, HAVING eller en kolumnfunktion visas.Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng
wave wave wave wave wave