Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
42
Rozdział2:WprowadzeniedoDAX
UwagaDISTINCTCOUNTjestfunkcjąwprowadzonąwwersji2012językaDAX.Abywy-
liczyćliczbęróżnychwartościdlakolumnywewcześniejszejwersji,koniecznebyłoużycie
funkcjiCOUNTROWS(DISTINCT(nazwa_kolumny)).Obydwawariantydajątensamwynik,ale
DISTINCTCOUNTjestłatwiejszedoprzeczytania,wymagającwywołaniatylkojednejfunkcji.
Wszystkiepokazanedotychczasfunkcjedziałająnakolumnachtabel(zwyjątkiem
COUNTROWS,którejparametremjesttabela).Tymsamympozwalająoneagregowaćwar-
tościpochodzącetylkozpojedynczejkolumny
.Istniejąteżfunkcjeagregujące,których
argumentemmożebyćwyrażenie,aniekolumna.Tenzbiórfunkcjijestszczególnie
użyteczny
,gdychcemywykonaćobliczenia,posługującsiękolumnamizróżnych,
powiązanychrelacyjnietabel.Naprzykład,jeślitabelaSaleszawierawszystkietrans-
akcjesprzedaży
,apowiązanazniątabelaProductzawierainformacjeoproduktach,
włączniezkosztem,możnawyliczyćcałkowitywewnętrznykoszttransakcjisprzedaży
,
definiującmiaręprzyużyciuponiższegowyrażenia:
Cost:=
SUMX(
Sales,Sales[Quantity]*RELATED(Product[StandardCost])
)
MiarataobliczailoczynwartościQuantity(ztabeliSales)orazStandardCostsprzedane-
goproduktu(zpowiązanejtabeliProduct)dlakażdegowierszawtabeliSalesizwraca
sumętychwyliczonychwartości.
WszystkiefunkcjeagregująceonazwachkończącychsięprzyrostkiemXzachowują
sięwtensamsposób:obliczająwyrażenie(drugiparametr)dlakażdegowierszatabeli
(pierwszyparametr)izwracająwynikuzyskanypoprzezzastosowanieodpowiedniej
agregacji(SUM,MIN,MAXlubCOUNT)dorezultatówtychobliczeńpośrednich.
Szerszeomówienietegozachowaniaprzedstawimywrozdziale4,gdyżabymóc
zrozumiećtodziałanie,koniecznejestwprowadzeniekoncepcjikontekstówwykona-
nia.DostępnefunkcjezprzyrostkiemXtoSUMX,AVERAGEX,PRODUCTX,COUNTX,COUNTAX,
CONCATENATEX,MINXorazMAXX.Istniejąteżiteratory
,którenieużywająprzyrostkaX,
takiejakFILTERlubADDCOLUMNS.Wszystkieonezostanąomówioneszczegółowowdal-
szejczęściksiążki.
Funkcjelogiczne
Czasamizachodzipotrzebazbudowaniawwyrażeniuwarunkulogicznegonaprzy-
kładwceluimplementacjiróżnychobliczeńwzależnościodwartościwkolumnie
lubwceluprzechwyceniabłędu.Wtakichsytuacjachmożnaużyćjednejzlogicz-
nychfunkcjijęzyka.Wpodrozdziale„ObsługabłędówwwyrażeniachDAX”wcześ-
niejpokazaliśmydwiezapewnenajważniejszefunkcjeztejgrupy
,amianowicie
IForazIFERROR.Wszystkiefunkcjeztejgrupydziałająwdośćoczywistysposób,