Funkce DAX COLUMNSTATISTICS v LuckyTemplates

Rád bych pokračoval ve zkoumání dynamického využití funkce DAX COLUMNSTATISTICS() – nové, téměř zcela nezdokumentované funkce DAX přidané do LuckyTemplates v srpnu 2021, která má některé velmi jedinečné aspekty, s nimiž si myslím, že bude velmi zajímavé se seznámit. Celé video tohoto tutoriálu si můžete prohlédnout ve spodní části tohoto blogu.

Hodně jsem experimentoval a naučil se opravdu zajímavé nové věci o tom, jak tato funkce funguje a co s ní můžete dělat. Ve svém prvním blogu o této funkci jsem mluvil o některých statických použitích. Dnes budu mluvit o některých opravdu úžasných dynamických využitích této funkce způsobem, který ani IntelliSense ještě není aktuální.

Obsah

Jak funguje funkce DAX COLUMNSTATISTICS

Pro každou tabulku a pole ve vašem datovém modelu vytvoří COLUMNSTATISTICS tabulku šesti dalších polí, která má název tabulky, název sloupce, minimální a maximální hodnoty pro sloupec, mohutnost a maximální délku. Zdá se, že to není mnoho dat, ale dá se s tím hodně dělat.

Funkce DAX COLUMNSTATISTICS v LuckyTemplates

Data, která aktuálně používám, jsou pouze cvičná datová sada pro externí nástroje LuckyTemplates. Je to relativně jednoduchý datový model s pěti tabulkami dimenzí, tabulkou faktů a a. Sledovat model jako tento není tak těžké, ale komplexní model potřebuje mnohem komplexnější monitorování datové sady.

Metadata pro komplexní datovou sadu se stávají mnohem důležitějšími, pokud jde o mohutnost, což je počet jedinečných hodnot v poli. Má velký vliv na velikost vašeho modelu a případně i na rychlost zpracování.

Navíc při sestavování modelu pomáhá znát nejen počet tabulek, ale také časové rozmezí těchto tabulek. Při sestavování tabulky Data se ujistíte, že pokryjete celý rozsah dat v tabulce faktů.

A tak pro tento příklad zkusme přidat tabulku do tohoto datového modelu, na kterém pracuji. V Power Query přejdeme na Nový zdroj , poté na Prázdný dotaz . A pak přejdeme do pokročilého editoru a já jen vložím funkci, která se nazývá List.Dates . Použijeme to k vytvoření tabulky mohutnosti 10 000, takže to je 10 000 jedinečných dat.

Vrátí seznam 10 000 položek a můžeme jej převést na tabulku a pak tuto tabulku přejmenovat.

Zde můžeme změnit pole k dnešnímu dni. A pokud klikneme na Zavřít a Použít, uvidíme, že se náš chytrý příběh bude dynamicky aktualizovat, aniž bychom museli obnovovat celý model (jako v minulosti).

Důvodem, proč je to plně dynamické, je to, že to všechno děláme pomocí opatření. Zajímavé je, že zobrazuje spoustu chyb a funkce je tak nová, že ji IntelliSense správně nezachytí, ale ve skutečnosti funguje.

Pojďme do Tabular Editor 3, což je podle mě nejlepší způsob, jak zjistit, co vlastně dělají komplexní měření DAX.

Pamatujte, že dotaz DAX vrací tabulky, nikoli scalery. Takže, když vezmeme toto opatření a zkopírujeme to do a, zobrazuje chybu, protože výsledek zde je stále scaler. Můžeme použít ladicí přístup nahrazení tohoto NÁVRATÉHO výsledku jednotlivými komponentami měření.

V tomto případě jej nahradíme ColStats , což, co jsme udělali nahoře, je jen to, že COLUMNSTATISTICSdo proměnné. Díky tomu dostaneme přesně to, co očekáváme, což je standardní tabulka statistik sloupců.

A nyní se chceme podívat na sloupec Název tabulky a chceme z něj vyjmout odlišné hodnoty a spočítat je. To bude počet tabulek v našem datovém modelu.

Nejprve vybereme sloupce v naší tabulce ColStats a vrátíme pouze pole názvu tabulky. V měření jazyka DAX nebo dotazu jazyka DAX obvykle chcete vrátit název pole s názvem tabulky před ním. V tomto případě však nevíme, na co odkazuje příslušný název tabulky, protože existuje pouze virtuálně. Zdá se, že nepřijímá název proměnné jako název tabulky.

V tomto případě tedy musíme zůstat u toho, co vypadá jako míra, ale ve skutečnosti je to odkaz na sloupec bez odkazu na tabulku před ním. A to stále funguje, i když je to v nomenklatuře matoucí. Pokud nyní tento příkaz RETURN nahradíme naším TabCol , dostaneme přesně to, co očekáváme, tedy pole modelových tabulek.

A pak pro Výsledek pouze spočítáme jednotlivé sloupce tabulky. Takže pokud toto nahradíme DISTINCT(TabsCol) , dostaneme našich sedm tabulek.

Nyní se podívejme na nejvyšší mohutnost v tabulce nejvyšší mohutnosti a uvidíme, jak jsme je získali. Toto je ve skutečnosti důležitý vzor, ​​který můžete použít pro mnoho různých věcí, kde hledáte, nejen maximální číslo, ale také atribut max spojený s tímto číslem.

Pojďme se tedy podívat na MaxCardinality . I když se jedná o scaler, můžeme jej proměnit v jednobuněčný stůl tím, že kolem něj dáme závorky. A pokud dosáhneme pětky, uvidíme, že je to hodnota mohutnosti 10 000.

Takže teď je otázka, jak to vezmeme a vrátíme tabulku spojenou s touto mohutností.

K tomu používáme tento velmi běžný vzor pomocí. Poté jej zkopírujeme do našeho příkazu RETURN a poskytne nám řádek, který jsme očekávali, což je sloupec 10 000 dat. Místo abychom získali jednu řadu (protože je to TOPN), dostaneme dvě, protože je tam nerozhodný výsledek.

ColStats také vytváří pro každou tabulku index ve skrytém řádku indexu s názvem RowNumber , který je jedinečným identifikátorem pro každý řádek tabulky. Takže MaxCardinality bude vždy zrcadlen RowNumber, pokud se jedná o jedinečný identifikátor.

A tak vlastně nezáleží na tom, že máme dva řádky, protože to, na co se díváme, je Max of Table Name. A to maximum je tam jen proto, aby vrátilo nějakou hodnotu, která by jinak byla jen holý sloupec. Ale musíme kolem toho dát nějakou agregaci a v tomto případě ji používáme.

Pak, pokud umístíme MaxCardinality do našeho příkazu RETURN a vložíme jej do hranatých závorek, abychom vrátili tabulku, nikoli scaler, vrátí hodnotu Test.

Tento vzor TOPN DAX je opravdu dobrý vzor, ​​který si musíte zapamatovat, když chcete v podstatě zjistit maximální nebo minimální hodnotu a poté vrátit atribut spojený s touto minimální nebo maximální hodnotou.




Závěr

Poskytl jsem vám obecný přístup a kontext, který můžeme použít, pokud jde o to, abyste co nejlépe využili funkci DAX COLUMNSTATISTICS dynamickým způsobem. Být schopen to sledovat dynamicky z hlediska komplexního modelu, myslím, že tato funkce má obrovskou hodnotu.

Čím více experimentujeme s funkcí COLUMNSTATISTICS a s její schopností dynamicky zpracovávat metadata v rámci DAX, myslím, že tím zajímavější využití najdeme. Pokud jste tedy již našli nějaké zajímavé využití této funkce DAX, dejte mi prosím vědět v komentářích níže.

Vše nejlepší!


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í.

Najvýkonnejšie volanie funkcie v LuckyTemplates

Najvýkonnejšie volanie funkcie v LuckyTemplates

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.

Techniky modelovania údajov na organizáciu opatrení DAX

Techniky modelovania údajov na organizáciu opatrení DAX

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.