Funkce skupiny SQL

Obsah

Skupinové funkce jsou integrovány do funkcí SQL, které fungují na skupinách řádků a vracejí hodnotu pro celou skupinu. Tyto funkce jsou: SKUPINA, MAJÍCÍ, POČET, MAX, MIN, AVG, SUM, DISTINKT.
Doložka SKUPINA VYTVOŘENÁ používá se ve spojení se skupinovými funkcemi k načítání dat seskupených podle jednoho nebo více sloupců.
Mezisoučty lze získat pomocí klauzule GROUP BY. Dotaz s klauzulí GROUP BY se nazývá seskupený dotaz, protože seskupuje data ve zdrojové tabulce a vytváří jeden souhrnný řádek pro každou vytvořenou skupinu. Sloupce uvedené ve skupině GROUP BY se nazývají sloupce seskupení.
Předpokládejme prodejní tabulku s následujícími poli
Id | výrobek | cena | množství | id prodejce
Příklad:
VYBERTE SUM (cenu) jako celkové tržby Z tržeb
Získá součet celkových prodejů, které byly provedeny, hodnota je přiřazena k celkovým prodejům
VYBERTE SUM (tržby) Z prodejní SKUPINY PODLE ID zaměstnance
Pro každého zaměstnance se vytvoří skupina a součet se vypočítá v řádcích každé skupiny. Předchozí příklad získá seznam se součtem tržeb každého jednoho ze zaměstnanců.
Dotaz by bylo lepší zahrnout do výběrového seznamu jméno zaměstnance, abyste věděli, kterému zaměstnanci odpovídá součet tržeb:
 VYBRAT zaměstnance.název, SOUČET (cena) JAKO tržby zaměstnancem Z prodeje, zaměstnanci Kde sales.idemployee = employed.idemployee SKUPINA PODLE ideemployee

Pouze:
konstantní hodnoty
sloupcové funkce
seskupení sloupců (sloupce, které se objevují v klauzuli GROUP BY)
nebo jakýkoli výraz založený na výše uvedeném.
Příklad: Chceme, kdybychom měli pobočky a chtěli bychom získat součet tržeb zaměstnanců seskupených podle krajů a měst:
 VYBERTE SUM (cena) jako tržby podle poboček Z tržeb SKUPINA PODLE krajů, měst

Je seskupena nejprve podle regionů a v každém regionu podle města.
Všechny řádky, které mají v poli seskupení hodnotu null, se stanou jedinou skupinou. To znamená, že považuje nulovou hodnotu za jakoukoli hodnotu pro účely seskupování.
Klauzule HAVING
Klauzule HAVING nám umožňuje vybrat řádky z tabulky vyplývající ze seskupovacího dotazu
V podmínkách výběru se mohou objevit pouze následující:
konstantní hodnoty
sloupcové funkce
seskupení sloupců (sloupce, které se objevují v klauzuli GROUP BY)
nebo jakýkoli výraz založený na výše uvedeném.
Příklad: Chceme vědět, kteří zaměstnanci prodali více než 10 000 eur
 VYBRAT * Z prodeje SKUPINA PODLE identického zaměstnance s AVG (cena)> 10 000

Abychom získali to, co je požadováno, musíme vypočítat průměrné tržby zaměstnanců. Musíme zaměstnance seskupit podle ID a vypočítat průměr pro každý z tržeb na zaměstnance, nakonec musíme z výsledku vybrat řádky, které mají průměr vyšší než 10 000.
Jak interně probíhá skupinový dotaz?
Nejprve je vytvořena tabulka zdroje dat podle klauzule FROM,
řádky jsou vybrány ze zdroje dat podle klauzule WHERE,
skupiny řádků se vytvářejí podle klauzule GROUP BY,
Pro každou skupinu je ve výsledné tabulce získán řádek s hodnotami, které jsou uvedeny v klauzulích GROUP BY, HAVING a ve výběrovém seznamu,
řádky jsou vybrány z výsledné tabulky podle klauzule HAVING,
sloupce, které nejsou uvedeny ve výběrovém seznamu, jsou z výsledné tabulky odstraněny,
řádky výsledné tabulky jsou seřazeny podle klauzule ***** BY
Dotaz se stane skupinovým dotazem, jakmile se objeví funkce SKUPINA PODLE, HAVING nebo sloupec.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod
wave wave wave wave wave