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.
V tomto tutoriálu probereme několik způsobů, jak můžeme použít nebo spustit klauzuli HAVING v agregačních funkcích SQL . Použití této klauzule v agregačních funkcích SQL může výrazně pomoci při sumarizaci dat.
Klauzule HAVING je téměř podobná příkazu WHERE a lze ji také provést společně s ním.
Během tohoto výukového programu probereme jejich korelace a rozdíly poskytnutím příkladů.
Obsah
Příkazy GROUP BY And WHERE v SQL
V našem prvním příkladu budeme diskutovat o tom, jak spustit a používat ukázkovou tabulku níže. Upozorňujeme, že klauzuli WHERE můžeme použít pouze s existujícími sloupci a nikoli pouze v agregačních funkcích.
Řekněme, že chceme získat celkový prodej produktu na základě jeho sloupce SaleAmount , kde je hodnota větší než 2 . Abychom získali výsledek, náš příkaz by měl být následující:
Nejprve vybereme ProductName a agregujeme SaleAmount , abychom získali TotalSales.
Poté jsme zde použili příkaz WHERE , protože se snažíme získat pouze produkty, u kterých je SaleAmount větší než 2. Příkaz 'GROUP BY ProductName' znamená, že seskupí řádky ve sloupci ProductName do jednoho.
Po provedení naší sady příkazů uvidíme, že ze všech dat ve sloupcích ProductName a SaleAmount byly zobrazeny pouze Bulb a Fan . To proto, že byli jediní, kteří měli SaleAmount větší než 2.
V tomto příkladu je příkaz WHERE pro filtrování výsledků pomocí existujícího sloupce, což je naše SaleAmount . Všimněte si také, že příkaz WHERE se zobrazuje před GROUP BY a nelze jej použít k filtrování agregačních funkcí. Na druhou stranu klauzule HAVING se objevuje za GROUP BY a používá se pro filtrování na základě agregační funkce.
Klauzule GROUP BY And HAVING v SQL
V tomto příkladu si ukážeme rozdíl mezi příkazem WHERE a klauzulí HAVING . Použijeme stejný cíl jako v předchozím příkladu, abychom mohli porovnat a vyhodnotit výsledky.
Nejprve si pomocí příkazu níže zobrazíme produkty s jejich celkovými tržbami. Jak vidíte, náš první příkaz je stále stejný jako náš první příkaz provádějící příkaz WHERE .
Pokud máme provést naše první dva příkazy, budeme mít následující výsledek:
Nyní řekněme, že chceme zobrazit pouze produkty, jejichž celkový prodej je vyšší než 5. Nemůžeme použít příkaz WHERE , protože jej lze použít pouze s existujícími sloupci. Proto musíme použít klauzuli HAVING , protože budeme filtrovat z agregační funkce.
Všimněte si, jak používáme klauzuli HAVING po GROUP BY na rozdíl od příkazu WHERE použitého před GROUP BY. Je to proto, že SQL seskupí záznamy před vyhodnocením klauzule HAVING .
Proveďme pak tyto příkazy spolu s HAVING SUM(SaleAmount)>5 . Po zadání, že chceme získat pouze ty produkty, jejichž celková cena je větší než 5, si všimneme, že v naší aktuální tabulce výsledků už pero neuvidíme . To proto, že jeho součet je menší než 5 .
Stručně řečeno, když chceme filtrovat data z naší tabulky na základě existujícího sloupce, použijeme klauzuli WHERE , zatímco když chceme filtrovat data z agregační funkce, použijeme klauzuli HAVING .
Klauzule HAVING And WHERE v SQL Server Management Studio (SSMS)
Nyní pokročíme kupředu tím, že probereme a předvedeme, jak můžeme provést klauzuli HAVING v (SSMS). Poskytnutím příkladů se také vypořádáme s rozdílem mezi klauzulí HAVING a klauzulí WHERE .
Níže jsou ukázková data SalesOrderHeader. Tato data se skládají ze 100 řádků. V našem příkladu chceme získat TotalSale podle CustomerID , kde je TotalSale větší než 10000 . Všimněte si, že celkový prodej vychází ze součtu hodnot sloupce TotalDue .
Nejprve mi dovolte demonstrovat, proč nemůžeme použít klauzuli WHERE , když chceme filtrovat na agregační funkci na základě našeho příkladu výše.
Použijeme ukázkovou sadu příkazů z obrázku níže. Jak můžete vidět, technicky máme stejnou sadu příkazů jako ta, kterou máme z našeho úplně prvního příkladu.
Když však klikneme na Provést v levém horním rohu, dojde k chybě, protože při filtrování agregační funkce nemůžeme použít samotnou klauzuli WHERE .
Abychom chybu opravili, musíme výsledek filtrovat pomocí klauzule HAVING namísto klauzule WHERE . Naše nová sada příkazů by měla být podobná obrázku níže.
Nyní vidíme, že naše chyba byla opravena a obsahuje výsledky zas celkovým prodejem vyšším než 10 000 .
Opět platí, že klauzule WHERE se vždy používá před klauzulí GROUP BY , zatímco klauzule HAVING se vždy používá po klauzuli GROUP BY .
Použití klauzule HAVING a klauzule WHERE v SQL
Pro tento příklad řekněme, že chceme současně použít klauzuli WHERE a HAVING . Zkusme získat TotalSale by CustomerID , kde TotalSale je větší než 10000 , ale pouze u zákazníků, jejichž TerritoryID je rovno 1 .
Protože chceme filtrovat výsledky se zákazníky, kteří mají 1 jako své TerritoryID , použijeme klauzuli WHERE. Náš příkaz by tedy měl být stejný jako ten předchozí. Opět jsme přidali klauzuli WHERE před klauzuli GROUP BY.
Prozatím nevidíme velký rozdíl mezi naším předchozím výsledkem a tímto novým. Pokud se však pozorně podíváte na pravý dolní roh, máme nyní pouze 64 řádků ve srovnání s předchozím s 505 řádky dat. Je to proto, že výsledky jsou filtrovány také na základě jejich TerritoryID .
Závěr
Abychom to shrnuli, klauzuli WHERE můžeme použít pouze s existujícími sloupci. Pokud potřebujeme filtrovat pomocí agregovaných funkcí, musíme místo toho použít klauzuli HAVING .
Použití klauzule HAVING v agregačních funkcích SQL a procvičování způsobů společného provádění klauzule HAVING a klauzule WHERE může uživatelům poskytnout pohodlí při práci s velkým množstvím dat nebo záznamů.
Doufám, že jsem vám poskytl dostatek informací a porozumění ohledně použití klauzule HAVING v agregačních funkcích 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
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.
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.
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ů.
Pozrite si kľúčové aktualizácie pre Power Apps a Power Automate a ich výhody a dôsledky pre platformu Microsoft Power Platform.
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.
V tomto tutoriálu se naučíte, jak vytvořit dokonalou šablonu LuckyTemplates, která je nakonfigurována podle vašich potřeb a preferencí.
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.
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í.
V tomto tutoriálu se budu zabývat konkrétní technikou, jak zobrazit kumulativní součet pouze do určitého data ve vašich vizuálech v LuckyTemplates.
Naučte se vytvářet a přizpůsobovat Bullet grafy v LuckyTemplates, které se používají hlavně pro měření výkonu oproti cílovým nebo předchozím rokům.