簡體   English   中英

通過上一個值過濾的累計非重復計數-DAX

[英]Cumulative distinct count filtered by last value - DAX

我有一個數據集:

month   name    flag
1       abc     TRUE
2       xyz     TRUE
3       abc     TRUE
4       xyz     TRUE
5       abc     FALSE
6       abc     FALSE

我想計算按“標志”值(真)過濾的“名稱”的月份累計唯一計數。 即我想要一個結果:

month   count
1       1
2       2
3       2
4       2
5       1
6       1

在第5個月和第6個月,不應將'abc'排除在外,因為在第5個月標志已切換為'FALSE'。我正在嘗試使用此處給出的示例來實現以下目標:

http://www.daxpatterns.com/cumulative-total/

但是我在努力掙扎。 我在想,也許可以使用功能TOPN來過濾可以在其上使用DISTINCTCOUNT的表,但是我沒有得到期望的結果。

MyFilteredCumulativeMeasure =
COUNTROWS(
    FILTER(
        GENERATE(
            ALL( 'MyTable'[name] )
            ,CALCULATETABLE(
                SAMPLE(
                    1
                    ,SUMMARIZE(
                        'MyTable'
                        ,'MyTable'[month]
                        ,'MyTable'[flag]
                    )
                    ,'MyTable'[month]
                    ,DESC
                )
                ,FILTER(
                    ALL( 'MyTable'[month] )
                    ,'MyTable'[month] <= MAX( 'MyTable'[month] )
                )
            )
        )
        ,'MyTable'[flag]
    )
)

這適用於您的示例。 可能需要對實際數據進行一些調整。 隨着數據大小的增加,也有可能顯着降低速度。 我將繼續說明這一點,因為這感覺不太正確,但這是一個很好的幼稚實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM