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.
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
Zistite, ako stiahnuť a nainštalovať DAX Studio a Tabular Editor 3 a ako ich nakonfigurovať na použitie v LuckyTemplates a v Exceli.
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.
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.
Vytvářejte míry DAX v LuckyTemplates pomocí existujících mír nebo vzorců. Tomu říkám technika větvení opatření.
V tomto blogu preskúmajte množinu údajov LuckyTemplates, najvýkonnejšie volanie funkcií, ktoré vám prináša tisíce funkcií M a DAX na dosah ruky.
V dnešnom návode sa podelím o niekoľko techník modelovania údajov o tom, ako lepšie usporiadať vaše merania DAX pre efektívnejší pracovný tok.
LuckyTemplates je skvelý nástroj pre finančné výkazníctvo. Tu je návod, ako vytvoriť prispôsobené tabuľky pre váš finančný dashboard LuckyTemplates.
V tomto návode sa bude diskutovať o toku jazyka Power Query a o tom, ako môže pomôcť vytvoriť hladkú a efektívnu zostavu údajov.
Budu diskutovat o jedné z mých oblíbených technik kolem vlastních ikon LuckyTemplates, která používá vlastní ikony dynamickým způsobem ve vizuálech LuckyTemplates.
V tomto blogu vám ukážu, jak můžete vytvořit tabulky LuckyTemplates pomocí vzorce, který kombinuje funkci UNION a funkci ROW.