Jetstack
Zpět na blog Blog

Seskupování a výpočty – reporty přímo ve vašich datech

Publikováno 1. dubna 2022

Technická ilustrace k článku Jetstacku

Reporting bývá tradičně samostatná činnost. Vytáhnete data z aplikace, načtete je do tabulky nebo do nástroje business intelligence, sestavíte graf, rozešlete ho – a zodpovíte otázku, která přes všechnu tu práci často byla jen seskupení a součet. Taková zajížďka dává smysl, když je otázka opravdu složitá. Je zbytečná, když je běžná. Seskupování a výpočty přinášejí těch obvyklých devadesát procent reportingu přímo do pohledu, takže nad svými daty nereportujete – prostě se na ně díváte.

Přidat do pohledu seskupení jsou dvě kliknutí. Vyberete vlastnost, záznamy se seskupí podle její hodnoty, každá skupina dostane záhlaví a tabulka – nebo kterýkoli jiný pohled, ve kterém právě jste – se kolem těch záhlaví přeuspořádá. Z pohledu na prodej podle regionů se tak z plochého seznamu o tisíci řádcích stane pár sbalitelných regionálních sekcí, každá s vlastními vnořenými řádky. Záhlaví skupiny může vedle názvu ukazovat i počet řádků („Severní Amerika – 142“), což uživateli dá užitečný přehled, aniž by musel všechno rozbalovat.

Naplno se funkce vyplatí u víceúrovňového seskupení. Seskupte podle regionu, uvnitř každého regionu pak podle obchodníka a uvnitř každého obchodníka podle fáze obchodu. Na kterékoli úrovni můžete větve rozbalovat a sbalovat. Vznikne přehledná hierarchie, která odhalí vzorce, jež plochý seznam skrývá. Při obchodních poradách, na provozních dashboardech nebo při odsouhlasování dat je právě tahle hierarchie často to hlavní.

Každá skupina může nést souhrny. Vestavěná sada pokrývá nejčastější případy: součet, počet, počet prázdných, počet neprázdných a zaokrouhlený součet pro peněžní částky, kde by drobné odchylky z řádkového zaokrouhlování jinak celkovou sumu pokřivily. Souhrny se zobrazují vedle záhlaví skupin a v řádku s celkovým součtem na konci tabulky. Když je tabulka seskupená podle regionu a sčítá částky obchodů, jsou regionální mezisoučty i celkový součet vidět naráz – přesně tam, kam se uživatel už tak dívá.

Vlastní výpočty posouvají funkci za hranice vestavěných souhrnů. Pomocí jazyka vložených výrazů si nad záznamy ve skupině nadefinujete vlastní vzorce – vážený průměr, poměr, podmíněný počet, průběžné srovnání s cílem. Výraz má přístup k záznamům ve skupině, takže cokoli, co jde zapsat jako vzorec nad těmito řádky, se může v pohledu objevit jako výpočet. To je velký prostor a pokryje většinu agregací, kvůli kterým analytici jinak sahají po tabulce.

Výchozí seskupení se ukládá spolu s pohledem. Pohled na nevyřízené objednávky se může otevřít rovnou seskupený podle priority a s mezisoučty podle částky, přesně jak to jeho autor zamýšlel. Když si uživatel chce data nakrájet jinak, může seskupení pro svou relaci přenastavit a příště se pohled vrátí k výchozímu stavu. Tenhle princip – jasně dané výchozí nastavení, které si ale uživatel může upravit – drží sdílené pohledy užitečné, aniž by všechny nutil do jedné a téže perspektivy.

Výkon bere tato funkce vážně. Seskupování probíhá na straně serveru, ne v prohlížeči, takže i pohled s desítkami tisíc podkladových řádků se otevře rychle. Se seskupením si dobře rozumí i stránkování – rozbalení velké skupiny si její řádky načte až podle potřeby, místo aby do stránky naráz nasypalo všechno – a výpočty se počítají na úrovni skupiny, aniž by přes klienta protékala celá sada záznamů. To se počítá ve chvíli, kdy chcete funkci používat v ostrém provozu, ne jen v ukázkách.

Na seskupování stojí i pohled kanban: kanbanová nástěnka je v jádru seskupení podle výčtové vlastnosti, jen vykreslené vodorovně místo svisle. Když pochopíte seskupování, máte model pro obojí – a jakmile začnete tabulku seskupovat podle fáze, přepnutí na kanban je přirozený další krok, který nevyžaduje žádné přenastavování.

Když má souhrnná odpověď opustit aplikaci – kvůli podkladům pro poradu, externímu partnerovi nebo archivu –, export do tabulky zachová seskupení i výpočty přesně tak, jak vypadají na obrazovce. Export je věrná kopie toho, na co se uživatel právě díval, ne surový výsyp dat, který by musel znovu seskupovat. Právě tahle návaznost dělá ze seskupování uvnitř pohledu skutečnou náhradu externího reportingu, ne jen vychytávku pro občasné použití.