Aktywne Wpisy
Cedrik +345
Właśnie znalazłem screen swojego pulpitu sprzed jakichś... nie wiem, 15, 16 lat?
Idę trochę popłakać, dobrze? ????
#nostalgia #kiedystobylo #gry
Idę trochę popłakać, dobrze? ????
#nostalgia #kiedystobylo #gry
Przyjaciel_Rodziny +154
Aktywne Znaleziska
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Transze są dwie na tydzień, więc unikalną transzę (i jej sumę) identyfikuję przez sumę warunków tydzień+transza.
Obie formuły działają prawidłowo, zastanawiam się tylko czy jest między nimi jakaś różnica, która przemawia na korzyść jednej bądź drugiej?
Jedna to SUMX + FILTER, druga to CALCULATE z SUMX.
Tak na czuja to skoro CALCULATE i tak wewnętrznie tłumaczy składnię warunków na FILTER to właściwie chyba obie funkcje sprowadzają się do tego samego -- bierzemy tabelę, okrajamy ją do tabeli, której wiersze spełniają dwa warunki i sumujemy jedną z kolumn.
W tematach DAXowych dopiero zaczynam dłubać, wolałbym sobie wyrabiać prawidłowe nawyki, zamiast zadowalać się pierwszą rzeźbą, która działa.
#businessintelligence
W tym przypadku prawdopodobnie nie będzie różnicy, algorytm wygeneruje zbliżone lub identyczne kwerendy, ale każdy przypadek użycia trzeba rozpatrywać indywidualnie.
Użycie calculate w kolumnie kalkulowanej powoduje, że filtr wiersza jest przekształcany w filtr kontekstu (tutaj zmodyfikowany ALL'em który znów go usuwa. W przypadku Fillter bez calculate'a kalkulacje są robione od razu na pełnym zbiorze. W każdym razie optymalizacja kodu na poziomie kolumn kalkulowanych nie wpływa na performance raportu
CALCULATE nie ignoruje kontekstu filtra -- CALCULATE go modyfikuje w tym zakresie, który jest wskazany w argumentach.
W moim przypadku co prawda daję ALL(tabela), więc faktycznie każę mu ignorować filtry i równocześnie nałożyć dwa filtry, ale jakbym nie miał ALL i zostawił tylko 2 warunki (RT i TRANSZA) -- to zewnętrzne filtry były by zmodyfikowane tylko, jeśli też dotyczyłyby RT i Transza. Jeżeli zewnętrzny filtr tyczyłby się np. koloru --
Dzięki za odpowiedź. Rozważam różnice rzecz jasna odnośnie kolumny obliczanej. Dzięki za wyjaśnienia.
Wyżej rozpisałem, czemu wydaje mi się, że obie funkcje właściwie robią to samo -- najpierw generują identyczne tabele a potem sumują jedną z kolumn.
Różnica łopatologicznie chyba taka, że SUMX+FILTER bierze całą tabelę i filtruje rekordy, a CALCULATE bierze przefiltrowaną tabelę, usuwa filtr, nakłada swój i sumuje rekordy? Ale na kroku przed sumowaniem -- obie funkcje tworzą
Tak
Jeśli mogę jeszcze dopytać (bo też trochę doczytałem i poćwiczyłem).
CALCULATE zamienia kontekst wiersza na kontekst filtru, czyli każda wartość w danym wierszu stanie się filtrem. Wszystko jasne. Ale konsekwencją jest to, że jeśli mamy 2 identyczne wiersze (np. ten sam klient, ten sam dzień, ta sama ilość) -- to CALCULATE zwróci oba wiersze. To też jasne, jest nawet w podręczniku opisane.
Ale to, czego nie ma -- czy to
W całej karierze nie zdążył mi się taki przypadek w realnych projektach. Zazwyczaj odpowiednie przygotowanie danych to