Sdílet prostřednictvím


series_lag_fl()

Použije prodlevu u řady.

Funkce series_lag_fl() je uživatelem definovaná funkce ( UDF), která jako vstup přebírá výraz obsahující dynamické číselné pole a posune ho dozadu. Běžně se používá pro posouvání časových řad k otestování, jestli je vzor nový nebo jestli odpovídá historickým datům.

Syntax

series_lag_fl(, y_seriesPosun)

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Typ Vyžadováno Popis
y_series dynamic ✔️ Maticová buňka s číselnými hodnotami.
Posun int ✔️ Celé číslo určující požadovaný posun v intervalech.

Definice funkce

Funkci můžete definovat vložením jejího kódu jako funkce definované dotazem nebo jejím vytvořením jako uložené funkce v databázi, a to následujícím způsobem:

Definujte funkci pomocí následujícího příkazu let. Nejsou vyžadována žádná oprávnění.

Důležité

Příkaz let nelze spustit samostatně. Musí za ním následovat příkaz tabulkového výrazu. Pokud chcete spustit funkční příklad , podívejte se na series_lag_fl()příklad.

let series_lag_fl = (series:dynamic, offset:int)
{
    let lag_f = toscalar(range x from 1 to offset+1 step 1
    | project y=iff(x == offset+1, 1, 0)
    | summarize lag_filter = make_list(y));
    fir(series, lag_f, false)
};
// Write your query to use the function here.

Příklad

Pokud chcete použít funkci definovanou dotazem, vyvolejte ji po definici vložené funkce.

let series_lag_fl = (series:dynamic, offset:int)
{
    let lag_f = toscalar(range x from 1 to offset+1 step 1
    | project y=iff(x == offset+1, 1, 0)
    | summarize lag_filter = make_list(y));
    fir(series, lag_f, false)
};
let dt = 1h;
let time_shift = 1d;
let bins_shift = toint(time_shift/dt);
demo_make_series1
| make-series num=count() on TimeStamp step dt by OsVer
| extend num_shifted=series_lag_fl(num, bins_shift)
| render timechart

Výstup

Graf časové řady posunuté o jeden den