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

Leave a Comment

Extrahovanie motívov a obrázkov LuckyTemplates z PBIX

Extrahovanie motívov a obrázkov LuckyTemplates z PBIX

Naučte se, jak rozebrat soubor PBIX a extrahovat motivy a obrázky LuckyTemplates z pozadí pro váš report!

Prehľad a vytvorenie domovskej stránky SharePointu

Prehľad a vytvorenie domovskej stránky SharePointu

Naučte sa, ako vytvoriť domovskú stránku SharePointu, ktorá sa predvolene načítava, keď používatelia zadajú adresu vašej webovej lokality.

Vytvoření tabulky data v LuckyTemplates

Vytvoření tabulky data v LuckyTemplates

Zjistěte, proč je důležité mít vyhrazenou tabulku s daty v LuckyTemplates, a naučte se nejrychlejší a nejefektivnější způsob, jak toho dosáhnout.

LuckyTemplates Mobile Reporting Tipy a techniky

LuckyTemplates Mobile Reporting Tipy a techniky

Tento stručný návod zdůrazňuje funkci mobilního hlášení LuckyTemplates. Ukážu vám, jak můžete efektivně vytvářet přehledy pro mobily.

Profesionální servisní analytické zprávy v LuckyTemplates

Profesionální servisní analytické zprávy v LuckyTemplates

V této ukázce LuckyTemplates si projdeme sestavy ukazující profesionální analýzy služeb od firmy, která má více smluv a zákaznických vztahů.

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Pozrite si kľúčové aktualizácie pre Power Apps a Power Automate a ich výhody a dôsledky pre platformu Microsoft Power Platform.

Bežné funkcie SQL: Prehľad

Bežné funkcie SQL: Prehľad

Objavte niektoré bežné funkcie SQL, ktoré môžeme použiť, ako napríklad reťazec, dátum a niektoré pokročilé funkcie na spracovanie alebo manipuláciu s údajmi.

Vytvoření šablony LuckyTemplates: Průvodce a tipy

Vytvoření šablony LuckyTemplates: Průvodce a tipy

V tomto tutoriálu se naučíte, jak vytvořit dokonalou šablonu LuckyTemplates, která je nakonfigurována podle vašich potřeb a preferencí.

Parametry pole a malé násobky v LuckyTemplates

Parametry pole a malé násobky v LuckyTemplates

V tomto blogu si ukážeme, jak vrstvit parametry pole s malými násobky, abychom vytvořili neuvěřitelně užitečné přehledy a vizuály.

LuckyTemplates Rank a vlastní seskupení

LuckyTemplates Rank a vlastní seskupení

V tomto blogu se dozvíte, jak používat funkce hodnocení LuckyTemplates a vlastní seskupování k segmentaci ukázkových dat a jejich seřazení podle kritérií.