Agregační funkce v SQL a jejich použití

V tomto tutoriálu budeme diskutovat o různých agregačních funkcích v SQL a o tom, jak je můžeme používat. V SQL se agregační funkce používají ke shromažďování dat z více řádků do jednoho souhrnného řádku. 

Agregační funkce v SQL mohou být velmi užitečné pro analytiky při sumarizaci dat.

Obsah

Běžně používané agregační funkce v SQL

Níže jsou uvedeny některé běžně používané agregační funkce v SQL .

Agregační funkce v SQL a jejich použití

Pamatujte, že funkce a se běžně používají v měnách nebo celočíselných hodnotách. Funkce AVG vrací nejen průměr, ale i průměr sloupce. Agregační funkce je také jediná, která při provádění výpočtů neignoruje hodnoty null.

Udělejme několik ukázkových příkazů pomocí našich pěti agregačních funkcí s ukázkovou tabulkou níže.

Agregační funkce v SQL a jejich použití

Nejprve udělejme příkaz pomocí funkce MAX . Řekněme, že chceme být ve sloupci ProductName. Náš příkaz by měl vypadat asi jako na obrázku níže.

Agregační funkce v SQL a jejich použití

Protože nalézáme produkt s nejvyšší hodnotou, potřebujeme získat jeho cenu, která je ve sloupci ProductPrice . Pro zadání názvu výstupního sloupce vždy vložte alias. Pokud tento příkaz provedeme, zobrazí se nám produkt s nejvyšší hodnotou pouze s jednou hodnotou. 

Dále provedeme příkaz pomocí funkce MIN . Protože funkce MIN je do jisté míry podobná funkci MAX , použijeme pouze stejný příklad, jaký jsme použili ve funkci MAX , ale tentokrát najdeme produkt s nejnižší hodnotou.

Agregační funkce v SQL a jejich použití

Když tento příkaz provedeme, načte produkt s nejnižší hodnotou v naší vzorové tabulce.

Nyní udělejme příkaz pomocí funkce COUNT . Řekněme, že chceme najít množství produktů ve sloupci ProductID . Náš příkaz by měl vypadat asi jako na obrázku níže.

Agregační funkce v SQL a jejich použití

Pokud provedeme tento příkaz, ukáže nám množství každého produktu ve sloupci ProductID a jejich příslušnou cenu.

Agregační funkce a klauzule GROUP BY

Nyní pojďme diskutovat o tom, jak můžeme použít více sloupců s . K tomu musíme použít klauzuli GROUP BY .

Většinou se používá v agregačních funkcích, protože vrací jeden záznam z každé skupiny. Také by měly být stále zahrnuty všechny sloupce v příkazu SELECT i bez agregace.

Pojďme diskutovat o tom, jak budeme používat agregační funkce s klauzulí GROUP BY s naší ukázkovou tabulkou níže.

Agregační funkce v SQL a jejich použití

Nejprve zkusme provést příkaz bez použití klauzule GROUP BY, abychom viděli rozdíl. Pojďme najít celkovou částku SaleAmount ve sloupci ProductName . Náš příkaz by měl vypadat asi jako na obrázku níže.

Agregační funkce v SQL a jejich použití

Jak jste si všimli, příkaz je podobný předchozím příkladům, které jsme zmínili na začátku tohoto tutoriálu. Jakmile tento příkaz provedeme, jednoduše vypočítá celkovou částku ve sloupci SaleAmount , což bude 28 .

Nyní uveďme další příklad pomocí klauzule GROUP BY

Agregační funkce v SQL a jejich použití

Protože používáme klauzuli GROUP BY , můžeme nyní používat více sloupců. Tentokrát chceme vidět celkovou částku prodeje za kategorii.

Klauzule GROUP BY zajistí, že výsledek bude zobrazovat součet prodejů pro každou kategorii, a pokud bude proveden, bude výsledkem obrázek níže.

V tomto příkladu je důležité použít klauzuli GROUP BY, protože pokud ne, dojde k chybě. Důvodem je, že Kategorie není obsažena v klauzuli GROUP BY nebo agregační funkci.

Agregační funkce v SQL a jejich použití

Uveďme stejný příklad, ale tentokrát získáme celkovou částku prodeje také podle ProductName . Náš příkaz by měl vypadat asi jako na obrázku níže.

Agregační funkce v SQL a jejich použití

Jakmile provedeme náš příkaz, výsledek ukáže součet prodejů podle kategorie a podle ProductName .

Agregační funkce v SQL a jejich použití

Pamatujte, že nemůžete používat nebo přistupovat k více sloupcům bez použití klauzule GROUP BY, protože pokud tak učiníte, způsobí to po spuštění příkazu chybu.

Agregační funkce v SQL Server Management Studio (SSMS)

Pojďme nyní diskutovat o tom, jak můžeme použít agregační funkce v . V našich příkladech použijeme níže uvedenou tabulku.

Agregační funkce v SQL a jejich použití

V naší tabulce SalesOrderHeader máme 31 465 řádků dat . V našem prvním příkladu si ukážeme, jak můžeme použít funkci COUNT počítáním řádků v naší tabulce. Náš příkaz by měl vypadat jako na obrázku níže.

Agregační funkce v SQL a jejich použití

Úspěšně jsme spočítali všechny řádky v našem SalesOrderHeader a pojmenovali jsme to jako countofrows . Jakmile tento příkaz provedeme, budeme mít výsledek 31 465 řádků .

Vraťme se k naší datové sadě. Při použití stejné agregační funkce spočítejme, kolik SalesPersonID je v naší tabulce. Náš příkaz by měl znít:

Agregační funkce v SQL a jejich použití

Když spustíme náš příkaz, konkrétně načte data ve sloupci SalesPersonsID a poskytne nám sloupec s názvem countofsalespersons s výsledkem 3806 .

Agregační funkce v SQL a jejich použití

Použití agregačních funkcí v jediném dotazu

Pojďme dále, pojďme diskutovat o tom, jak můžeme použít více agregačních funkcí v jednom dotazu. Při agregaci našich sloupců TotalDue a TaxAmt budeme používat funkce SUM , AVG a MAX

Agregační funkce v SQL a jejich použití

V jednom dotazu můžeme použít více agregačních funkcí tak, že za každou funkci vložíme čárku. 

Agregační funkce v SQL a jejich použití

Jakmile tento příkaz provedeme, náš výsledek by měl vypadat jako na obrázku níže. 

Agregační funkce v SQL a jejich použití

Nyní můžeme vidět různé sloupce spolu s jejich příslušnou hodnotou pomocí více agregačních funkcí

Zkusme provést příkaz, kde způsobí chybu, abychom zdůraznili, proč bychom měli při výběru sloupců používat klauzuli GROUP BY . Použijeme stejný příklad s více funkcemi, ale tentokrát vybereme CustomerID .

Agregační funkce v SQL a jejich použití

Jak vidíte, říká to, že příkaz je neplatný, protože KódZákazníka není obsaženo ani v agregační funkci , ani v klauzuli GROUP BY .

Ukázkový scénář s doložkou GROUP BY

Pro náš další příklad opravme naši chybu poskytnutím klauzule GROUP BY v našem příkazu.

Agregační funkce v SQL a jejich použití

Právě jsme přidali CustomerID do klauzule GROUP BY a nyní můžeme vidět součet, průměr a maximální hodnotu našich TotalDue a TaxAmt podle CustomerID. Můžeme také vidět, že máme celkem 19119 řádků .

Podívejme se na náš poslední příklad a probereme, proč je pro nás důležité zajistit, aby neagregované sloupce a výrazy byly zahrnuty do klauzule GROUP BY .

V naší tabulce SalesOrderHeader máme sloupec OrderDate . Řekněme, že chceme získat součet TotalDue podle roku. Pokud nebudeme označovat všechny neagregované sloupce a výrazy, musíme použít příkaz z obrázku níže.

Agregační funkce v SQL a jejich použití

Všimněte si, jak jsme schopni získat výsledek spíše než chybu. Máme však více zpráv pro stejný rok, kdy naším cílem je, aby zprávy byly shrnuty do jedné konkrétní hodnoty za rok.

Abychom napravili naši chybu, musíme se ujistit, že výraz zahrneme také do naší klauzule GROUP BY . Náš nový příkaz by měl být:

Agregační funkce v SQL a jejich použití

Po provedení příkazu můžeme vidět, že jsme úspěšně získali součet OrderDate za rok. 



Závěr

Abych to shrnul, naučili jste se některé základní znalosti týkající se použití agregačních funkcí v SQL. Agregační funkce mohou být velmi ideální při práci s velkými sestavami nebo datovými sadami, protože poskytují analytikům pohodlí během analýzy a sumarizace dat. 

Doufejme, že vám tento tutoriál pomůže lépe procvičit používání různých agregačních funkcí v SQL. Chcete-li se o tomto tématu a dalším souvisejícím obsahu dozvědět více, určitě se můžete podívat na seznam relevantních odkazů níže.

Vše nejlepší,

Hafiz


Vyhledávací pole PowerApps: Jak přidat a přizpůsobit

Vyhledávací pole PowerApps: Jak přidat a přizpůsobit

Naučte se, jak vytvořit vyhledávací pole PowerApps úplně od začátku a přizpůsobit je tak, aby odpovídalo celkovému tématu vaší aplikace.

Příklad SELECTEDVALUE DAX – Výběr kráječe sklizně

Příklad SELECTEDVALUE DAX – Výběr kráječe sklizně

Sklízejte nebo zachycujte hodnotu uvnitř míry a znovu ji použijte v jiném taktu pro dynamické výpočty pomocí SELECTEDVALUE DAX v LuckyTemplates.

Historie verzí v seznamech SharePoint

Historie verzí v seznamech SharePoint

Zjistěte, jak vám historie verzí na SharePointu může pomoci vidět vývoj určitých dat a kolika změn prošla.

Výběr barevných hexadecimálních kódů pro zprávy LuckyTemplates

Výběr barevných hexadecimálních kódů pro zprávy LuckyTemplates

Zde je nástroj pro vytváření sestav a vizuálů, výběr barevných hexadecimálních kódů, který můžete použít ke snadnému získání barev pro vaše sestavy LuckyTemplates.

Dynamický datový výřez v LuckyTemplates pomocí tabulky období

Dynamický datový výřez v LuckyTemplates pomocí tabulky období

Pomocí tabulky období můžete v přehledu snadno zobrazit časové období jako průřez. Použijte M kód k vytvoření dynamického datového výřezu v LuckyTemplates.

Tabulky proporcí a četností v Excelu

Tabulky proporcí a četností v Excelu

Chtěli jsme se ponořit do tabulek četností v Excelu a také do tabulek proporcí. Podívejte se, co to je a kdy je použít.

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Zistite, ako stiahnuť a nainštalovať DAX Studio a Tabular Editor 3 a ako ich nakonfigurovať na použitie v LuckyTemplates a v Exceli.

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

Tento blog obsahuje vizualizáciu Shape Map pre priestorovú analýzu v LuckyTemplates. Ukážem vám, ako môžete efektívne využiť túto vizualizáciu s jej funkciami a prvkami.

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

V tomto návode predstavujem jedinečný nápad týkajúci sa finančného výkazníctva, ktorý spočíva v prideľovaní výsledkov na vopred určené šablóny tabuliek v rámci LuckyTemplates.

DAX měří v LuckyTemplates pomocí Measure Branching

DAX měří v LuckyTemplates pomocí Measure Branching

Vytvářejte míry DAX v LuckyTemplates pomocí existujících mír nebo vzorců. Tomu říkám technika větvení opatření.