Translation not up to date
Pro některé operace je důležitá posloupnost událostí.
Aplikace vám umožňuje pracovat s následujícími posloupnostmi záznamů:
- Posloupnosti a časové řady
- Funkce posloupnosti
- Indexování záznamů
- Averaging, semming, and comparing values
- Monitorování změn-diferenciace
@SINCE
- Hodnoty odchylky
- Další zařízení posloupnosti
Pro mnoho aplikací může být každý záznam procházející proudem považován za jednotlivý případ, nezávislý na všech ostatních. V takových situacích je pořadí záznamů obvykle nedůležité.
Pro některé třídy problémů však je sekvence záznamů je velmi důležitá. Jedná se obvykle o situace časové řady, ve kterých posloupnost záznamů představuje seřazenou posloupnost událostí nebo výskytů. Každý záznam představuje snímek v určitém časovém okamžiku; velká část nejbohatších informací však může být obsažena v okamžitých hodnotách, ale způsobem, jakým se tyto hodnoty mění a chovají se v čase.
Relevantní parametr může být samozřejmě něčím jiným než čas. Záznamy by například mohly představovat analýzy provedené na vzdálenostech podél trati, ale stejné zásady by se použily.
Pořadí a speciální funkce jsou okamžitě rozpoznatelné následujícími charakteristikami:
- Všechny mají předponu
@
- Jejich názvy jsou uvedeny velkými písmeny
Funkce posloupnosti mohou odkazovat na záznam momentálně zpracovávaný uzlem, záznamy, které již prošly uzlem, a dokonce i v jednom případě záznamy, které se ještě musí projít přes uzel. Funkce posloupnosti lze volně kombinovat s jinými komponentami výrazů CLEM, i když některé mají omezení toho, co lze použít jako jejich argumenty.
Příklady
Může být užitečné vědět, jak dlouho je to od určité události, nebo kdy byla podmínka pravdivá. Použijte funkci @SINCE
, chcete-li to provést-například:
@SINCE(Income > Outgoings)
Tato funkce vrací posunutí posledního záznamu, kde tato podmínka byla pravdivá-to znamená, počet záznamů před touto podmínkou, ve kterém byla podmínka pravdivá. Pokud podmínka nebyla nikdy pravdivá, @SINCE
vrátí @INDEX + 1
.
Někdy se můžete chtít odkázat na hodnotu aktuálního záznamu ve výrazu používaném produktem @SINCE
. To můžete provést pomocí funkce @THIS
, která uvádí, že název pole vždy platí pro aktuální záznam. Chcete-li najít posun posledního záznamu, který měl hodnotu pole Concentration
více než dvojnásobek aktuálního záznamu, můžete použít:
@SINCE(Concentration > 2 * @THIS(Concentration))
V některých případech je podmínka zadaná pro @SINCE
pravdivá pro aktuální záznam podle definice-například:
@SINCE(ID == @THIS(ID))
Z tohoto důvodu @SINCE
nevyhodnocuje jeho stav pro aktuální záznam. Použijte podobnou funkci, @SINCE0
, chcete-li vyhodnotit podmínku pro aktuální záznam stejně jako předchozí záznam; pokud je podmínka pravdivá v aktuálním záznamu, @SINCE0
vrátí 0
.
Funkce | Výsledek | Popis |
---|---|---|
MEAN(FIELD) |
Fyzické | Vrátí střední hodnotu průměru hodnot pro zadané FIELD nebo FIELDS. |
@MEAN(FIELD, EXPR) |
Fyzické | Vrátí střední průměr hodnot pro POLE za poslední EXPLR záznamy přijaté aktuálním uzlem, včetně aktuálního záznamu. FIELD musí být jméno numerického pole. EXPR může být libovolný výraz vyhodnocený na celé číslo větší než 0. Pokud je vynechán parametr EXPR nebo pokud překročí počet přijatých záznamů, bude vrácen průměr všech záznamů, které byly dosud přijaty. |
@MEAN(FIELD, EXPR, INT) |
Fyzické | Vrátí střední průměr hodnot pro POLE za poslední EXPLR záznamy přijaté aktuálním uzlem, včetně aktuálního záznamu. FIELD musí být jméno numerického pole. EXPR může být libovolný výraz vyhodnocený na celé číslo větší než 0. Pokud je vynechán parametr EXPR nebo pokud překročí počet přijatých záznamů, bude vrácen průměr všech záznamů, které byly dosud přijaty. Hodnota INT určuje maximální počet hodnot, které mají být vyhledají. To je mnohem efektivnější než použití jen dvou argumentů. |
@DIFF1(FIELD) |
Fyzické | Vrátí první rozdíl z pole FIELD. Formulář s jedním argumentem tedy jednoduše vrátí rozdíl mezi aktuální hodnotou a předchozí hodnotou pole. Vrátí $null$ , pokud neexistují příslušné předchozí záznamy. |
@DIFF1(FIELD1, FIELD2) |
Fyzické | Formulář se dvěma argumenty poskytuje první rozdíl FIELD1 s ohledem na FIELD2. Vrátí $null$ , pokud neexistují příslušné předchozí záznamy. Vypočítá se jako @DIFF1(FIELD1)/@DIFF1(FIELD2) . |
@DIFF2(FIELD) |
Fyzické | Vrátí druhý rozdíl z pole FIELD. Formulář s jedním argumentem tedy jednoduše vrátí rozdíl mezi aktuální hodnotou a předchozí hodnotou pole. Vrátí $null$ , pokud neexistují příslušné předchozí záznamy. @DIFF2 se vypočítá jako @DIFF(@DIFF(FIELD)) . |
@DIFF2(FIELD1, FIELD2) |
Fyzické | Dvouargumentový formulář poskytuje druhý rozdíl FIELD1 s ohledem na FIELD2. Vrátí $null$ , pokud neexistují příslušné předchozí záznamy. Jedná se o komplexní výpočet -- @DIFF1(FIELD1)/@DIFF1(FIELD2) -
@OFFSET(@DIFF1(FIELD1),1)/@OFFSET(@DIFF1(FIELD2))) / @DIFF1(FIELD2) . |
@INDEX |
Celé číslo | Vrátí index aktuálního záznamu. Indexy jsou alokovány pro záznamy, jakmile dorazí na aktuální uzel. První záznam je dán indexem 1 a index se zvýší o 1 pro každý následný záznam. |
@LAST_NON_BLANK(FIELD) |
Jakékoli | Vrací poslední hodnotu pole FIELD , která nebyla prázdná, jak je definováno v předchozím zdrojovém nebo typu uzlu. Pokud v záznamech FIELD v záznamech dosud nejsou žádné neprázdné hodnoty, $null$ se vrátí. Všimněte si, že prázdné hodnoty, také nazývané uživatelské hodnoty, lze definovat samostatně pro každé pole. |
@MAX(FIELD) |
Číslo | Vrátí maximální hodnotu pro zadaný FIELD. |
@MAX(FIELD, EXPR) |
Číslo | Vrací maximální hodnotu pro POLE za poslední přijaté záznamy EXPR , včetně aktuálního záznamu. FIELD musí být jméno numerického pole. EXPR může být libovolný výraz vyhodnocený na celé číslo větší než 0. |
@MAX(FIELD, EXPR, INT) |
Číslo | Vrací maximální hodnotu pro POLE za poslední přijaté záznamy EXPR , včetně aktuálního záznamu. FIELD musí být jméno numerického pole. EXPR může být libovolný výraz vyhodnocený na celé číslo větší než 0. Pokud je vynechán parametr EXPR nebo pokud překročí počet dosud přijatých záznamů, je vrácena maximální hodnota všech přijatých záznamů. Hodnota INT určuje maximální počet hodnot, které mají být vyhledají. To je mnohem efektivnější než použití jen dvou argumentů. |
@MIN(FIELD) |
Číslo | Vrátí minimální hodnotu pro zadaný FIELD. |
@MIN(FIELD, EXPR) |
Číslo | Vrací minimální hodnotu pro POLE za poslední přijaté záznamy EXPR , včetně aktuálního záznamu. FIELD musí být jméno numerického pole. EXPR může být libovolný výraz vyhodnocený na celé číslo větší než 0. |
@MIN(FIELD, EXPR, INT) |
Číslo | Vrací minimální hodnotu pro POLE za poslední přijaté záznamy EXPR , včetně aktuálního záznamu. FIELD musí být jméno numerického pole. EXPR může být libovolný výraz vyhodnocený na celé číslo větší než 0. Pokud je vynechán parametr EXPR nebo pokud překročí počet přijatých záznamů, bude vrácena minimální hodnota ze všech přijatých záznamů. Hodnota INT určuje maximální počet hodnot, které mají být vyhledají. To je mnohem efektivnější než použití jen dvou argumentů. |
@OFFSET(FIELD, EXPR) |
Jakékoli | Vrací hodnotu pole POLE v posunutí záznamu z aktuálního záznamu o hodnotu EXPR. Kladné posunutí odkazuje na záznam, který již prošel ("looback"), zatímco negative uvádí "lookahead" na záznam, který ještě nedorazil. Například, @OFFSET(Status, 1) vrací hodnotu pole Status v předchozím záznamu, zatímco @OFFSET(Status, –4) "vypadá napřed" čtyři záznamy v posloupnosti (tj. na záznamy, které zatím neprošly tímto uzlem) k získání hodnoty. Uvědomte si, že negativní posun (alook ahead) musí být zadán jako konstanta. Pouze pro kladné odchylky může být EXR také libovolný výraz CLEM, který je vyhodnocen pro aktuální záznam, aby poskytl posun. V tomto případě by měla tříargumentová verze této funkce zlepšit výkonnost (viz další funkce). Pokud výraz vrátí cokoli jiného než nezáporné celé číslo, způsobí to chybu-to znamená, že není legální mít vypočítané dopředné posunutí. Všimněte si, že self referential @OFFSET function can't use literal lookahead. Například v uzlu Filler nelze nahradit hodnotu field1 za použití výrazu, jako je například @OFFSET(field1,-2) . Při vyplňování pole v poli Výplňový uzel existují ve skutečnosti dvě různé hodnoty tohoto pole, konkrétně předvyplněná hodnota a poplněná hodnota. Když se @OFFSET odkazuje sama na sebe, odkazuje na hodnotu po vyplnění. Tato poplněná hodnota existuje pouze pro uplynulé řádky, takže se vlastní referenční @OFFSET může odkazovat pouze na minulé řádky. Protože se vlastní referenční @OFFSET nemůže odkazovat na budoucnost, provede následující kontroly offsetu:
|
@OFFSET(FIELD, EXPR, INT) |
Jakékoli | Provádí stejnou operaci jako funkce @OFFSET s přidáním třetího argumentu INT, který určuje maximální počet hodnot, které se mají vrátit zpět. V případech, kdy je offset vypočítán z výrazu, by tento třetí argument měl zlepšit výkonnost. Například ve výrazu, jako je například@OFFSET(Foo, Month, 12) , systém ví, že má uchovávat pouze posledních dvanáct hodnot Foo ; jinak musí ukládat každou hodnotu pouze v případě. V případech, kdy hodnota posunutí je konstantní-včetně záporných posunů "dopředného vyhledávání", které musí být konstantní-třetí argument je zbytečný a použije se dvouargumentová verze této funkce. Viz také poznámka o self referential functions in the two-argument version described earlier. Všimněte si, že použití obou "lookahead" a "lookback" v jednom uzlu není podporováno. |
@SDEV(FIELD) |
Fyzické | Vrací směrodatnou odchylku hodnot pro zadaný FIELD nebo FIELDS. |
@SDEV(FIELD, EXPR) |
Fyzické | Vrací směrodatnou odchylku hodnot POLE v posledních EXPR záznamech přijatých aktuálním uzlem, včetně aktuálního záznamu. FIELD musí být jméno numerického pole. EXPR může být libovolný výraz vyhodnocený na celé číslo větší než 0. Pokud je vynechán parametr EXPR nebo pokud překročí počet přijatých záznamů, bude vrácena směrodatná odchylka všech záznamů, které byly dosud přijaty. |
@SDEV(FIELD, EXPR, INT) |
Fyzické | Vrací směrodatnou odchylku hodnot POLE v posledních EXPR záznamech přijatých aktuálním uzlem, včetně aktuálního záznamu. FIELD musí být jméno numerického pole. EXPR může být libovolný výraz vyhodnocený na celé číslo větší než 0. Pokud je vynechán parametr EXPR nebo pokud překročí počet přijatých záznamů, bude vrácena směrodatná odchylka všech záznamů, které byly dosud přijaty. Hodnota INT určuje maximální počet hodnot, které mají být vyhledají. To je mnohem efektivnější než použití jen dvou argumentů. |
@SINCE(EXPR) |
Jakékoli | Vrací počet záznamů, které uplynuly od EXPR, což je libovolný výraz CLEM, byl true. |
@SINCE(EXPR, INT) |
Jakékoli | Přidání druhého argumentu, INT, uvádí maximální počet záznamů, které se mají vrátit zpět. Pokud EXPR nikdy nebyla pravdivá, INT je @INDEX+1 . |
@SINCE0(EXPR) |
Jakékoli | Zváží aktuální záznam, zatímco @SINCE nikoli; @SINCE0 vrátí hodnotu 0, pokud je hodnota EXPR true pro aktuální záznam. |
@SINCE0(EXPR, INT) |
Jakékoli | Přidání druhého argumentu, INT uvádí maximální počet záznamů, které se mají vrátit zpět. |
@SUM(FIELD) |
Číslo | Vrátí součet hodnot pro zadaný FIELD nebo FIELDS. |
@SUM(FIELD, EXPR) |
Číslo | Vrátí součet hodnot pro POLE v posledních EXPR záznamech přijatých aktuálním uzlem, včetně aktuálního záznamu. FIELD musí být jméno numerického pole. EXPR může být libovolný výraz vyhodnocený na celé číslo větší než 0. Pokud je vynechán parametr EXPR nebo pokud překročí počet přijatých záznamů, vrátí se součet všech přijatých dosud obdržených záznamů. |
@SUM(FIELD, EXPR, INT) |
Číslo | Vrátí součet hodnot pro POLE v posledních EXPR záznamech přijatých aktuálním uzlem, včetně aktuálního záznamu. FIELD musí být jméno numerického pole. EXPR může být libovolný výraz vyhodnocený na celé číslo větší než 0. Pokud je vynechán parametr EXPR nebo pokud překročí počet přijatých záznamů, vrátí se součet všech přijatých dosud obdržených záznamů. Hodnota INT určuje maximální počet hodnot, které mají být vyhledají. To je mnohem efektivnější než použití jen dvou argumentů. |
@THIS(FIELD) |
Jakékoli | Vrací hodnotu pole s názvem FIELD v aktuálním záznamu. Používá se pouze ve výrazech @SINCE . |