Skip to content

Instantly share code, notes, and snippets.

@maxim-uvarov
Last active Jun 25, 2020
Embed
What would you like to do?
Dax studio testing dummy running total

Я тестировал два варианта и получилось следующие benchmarks:

  1. Версия Паши средняя длительность: 8583 (скрин)
  2. Оригинальная версия средняя длительность: 8092 (скрин)
  3. Версия Павла Левчука с Valuese: 8820 (скрин)

Вот эти коды я тестировал.

Версия Паши:

DEFINE
    MEASURE factmetrica[s] =
        SUM ( factmetrica[Клики] )
EVALUATE
VAR _t0 =
    SUMMARIZE (
        factmetrica,
        FactMetrica[Поисковая фраза (Директ)]
    )
VAR _t1 =
    ADDCOLUMNS (
        _t0,
        "idx", RANKX (
            _t0,
            [s],
            ,
            desc,
            DENSE
        ),
        "sum", [s]
    )
RETURN
    ADDCOLUMNS (
        _t1,
        "pct_acc",
        VAR _idx = [idx]
        RETURN
            SUMX (
                FILTER (
                    _t1,
                    [idx] <= _idx
                ),
                [sum]
            )
                / CALCULATE (
                    [s],
                    ALLSELECTED ( FactMetrica[Поисковая фраза (Директ)] )
                )
    )

Оригинальная версия:

EVALUATE
VAR _facttablevar =
    SUMMARIZECOLUMNS (
        FactMetrica[Поисковая фраза (Директ)],
        "Клики", SUM ( FactMetrica[Клики] )
    )
VAR _clicksallvar = SUMX(_facttablevar, [Клики])
RETURN
    ADDCOLUMNS (
        _facttablevar,
        "run",
        VAR _clickvar = [Клики]
        RETURN
            SUMX ( FILTER ( _facttablevar, [Клики] >= _clickvar ), [Клики] ) / _clicksallvar
    )

Версия 3 - С Values

DEFINE
    MEASURE FactMetrica[s] =
        SUM ( FactMetrica[Клики] )
EVALUATE
-- Paul Levchuk v2
VAR _t0 =
    VALUES ( FactMetrica[Поисковая фраза (Директ)] )
VAR _t1 =
    ADDCOLUMNS (
        _t0,
        "idx", RANKX (
            _t0,
            [s],
            ,
            DESC,
            DENSE
        ),
        "sum", [s]
    )
VAR _s0 =
    CALCULATE (
        [s],
        ALL ( FactMetrica[Поисковая фраза (Директ)] )
    )
VAR _t2 =
    ADDCOLUMNS (
        _t1,
        "pct_acc",
        VAR _idx = [idx]
        RETURN
            SUMX (
                FILTER (
                    _t1,
                    [idx] <= _idx
                ),
                [sum]
            ) / _s0
    )
RETURN
    _t2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment