Funkce

Existují různé typy funkcí, které lze použít ve výrazech.

Témata:

Analytické funkce

Analytické funkce umožňují zkoumat data pomocí modelů, jako jsou předpověď, spojnice trendu a shluk. Případně můžete analytické funkce přetáhnout do editoru sešitu.

Případně můžete do sešitu přidat předpovědi, spojnice trendů a shluky tak, že je vyberete na kartě Analytika na panelu Data v editoru sešitu. Viz část Přidání statistických analytik do vizualizací.

Funkce Příklad Popis Syntaxe

CLUSTER

CLUSTER((produkt, firma), (fakturované_množství, výnosy), 'clusterName‘ algorithm=k-means;numClusters=%1;maxIter=%2;useRandomSeed=FALSE;enablePartitioning=TRUE', 5, 10)

Sloučí sadu záznamů do skupin na základě jednoho nebo několika vstupních výrazů pomocí K průměrů nebo hierarchické shlukové analýzy.

CLUSTER((výraz_dimenze_1 , ..., výraz_dimenze_N), (výraz_1, ..., výraz_N), název_výstupního_sloupce, volby, [volby_svázané_s_běhovým_prostředím])

FORECAST

Příklad předpovědi výnosů podle dne

Tento příklad vybírá předpověď výnosů podle dne.

FORECAST("A - Ukázkový prodej"."Základní fakta"."1- Výnosy" Target,
("A - Ukázkový prodej"."Čas"."T00 Kalendářní data"),'forecast', 'numPeriods=30;predictionInterval=70;') ForecastedRevenue

Příklad předpovědi výnosů podle roku a čtvrtletí

Tento příklad vybírá předpověď výnosů podle roku a čtvrtletí.

FORECAST("A - Ukázkový prodej"."Základní fakta"."1- Výnosy",
("A - Ukázkový prodej"."Čas"."T01 Rok" timeYear, "A - Ukázkový prodej"."Čas"."T02 Čtvrtletí" TimeQuarter),'forecast', 'numPeriods=30;predictionInterval=70;') ForecastedRevenue

Vytvoří model časových řad zadaného ukazatele nad řadami pomocí algoritmu exponenciálního vyhlazování (ETS), sezónní ARIMA nebo ARIMA. Výstupem této funkce je předpověď pro sadu období stanovených argumentem numPeriods.

Podívejte se také na níže uvedené další volby funkce FORECAST.

FORECAST(measure, ([series]), output_column_name, options,[runtime_binded_options])])

Kde:

  • Parametr measure představuje ukazatel pro předpověď, například údaje o výnosech.

  • Parametr series představuje časový interval použitý k sestavení modelu prognózy. Parametr series je seznam jednoho nebo více sloupců časové dimenze. Pokud parametr series vynecháte, určí se časový interval z dotazu.

  • Parametr output_column_name představuje platné názvy sloupců pro forecast, low, highpredictionInterval.

  • Parametr options představuje řetězcový seznam dvojic název/hodnota oddělených středníkem (;). Hodnota může zahrnovat řetězec %1 ... %N stanovený v parametru volby_svázané_s_běhovým_prostředím.

  • Parametr runtime_binded_options představuje seznam sloupců a voleb oddělených čárkou. Hodnoty těchto sloupců a voleb jsou vyhodnocovány a řešeny v době provádění jednotlivých dotazů.

Podívejte se také na níže uvedené další volby funkce FORECAST.

OUTLIER

OUTLIER((produkt, firma), (fakturované_množství, výnosy), 'isOutlier', 'algorithm=kmeans')

Označí záznam jako odlehlý bod na základě jednoho nebo několika vstupních výrazů pomocí algoritmu K průměrů, hierarchické shlukové analýzy nebo detekce vícerozměrného odlehlého bodu.

OUTLIER((výraz_dimenze_1 , ..., výraz_dimenze_N), (výraz_1, ..., výraz_N), název_výstupního_sloupce, volby, [volby_svázané_s_běhovým_prostředím])

REGR

REGR(revenue, (discount_amount), (product_type, brand), 'fitted', '')

Proloží lineární model a vrátí proložené hodnoty nebo model. Tuto funkci lze použít k proložení lineární křivky podle dvou měřítek.

REGR(výraz_ukazatele_osy_y, (výraz_osy_x), (výraz_kategorie_1, ..., výraz_kategorie_N), název_výstupního_sloupce, volby, [volby_svázané_s_běhovým_prostředím])

TRENDLINE

TRENDLINE(výnosy, (kalendářní_rok, kalendářní_čtvrtletí, kalendářní_měsíc) BY (produkt), 'LINEAR', 'VALUE')

Společnost Oracle doporučuje, abyste při zobrazení vizualizace použili funkci Trendline pomocí vlastnosti Přidat statistiku. Viz Úprava vlastností vizualizace.

Proloží lineární, polynomický nebo exponenciální model a vrátí proložené hodnoty nebo model. Parametr číselný_výraz představuje hodnotu Y trendu a parametr řada (sloupce s časovými údaji) představuje hodnotu X.

TRENDLINE(číselný_výraz, ([řada]) BY ([část_By]), typ_modelu, typ_výsledku)

Volby funkce FORECAST Následující tabulka obsahuje seznam dostupných voleb, které lze používat s funkcí FORECAST.

Název volby Hodnoty Popis
numPeriods Celočíselná hodnota Počet období pro předpověď.
predictionInterval 0 až 100, kde vyšší hodnoty představují vyšší spolehlivost Míra spolehlivosti předpovědi.
modelType

ETS (Exponenciální vyhlazování)

SeasonalArima

ARIMA

Model, který má být použit pro předpověď.
useBoxCox

TRUE

FALSE

Při hodnotě TRUE se použije Box-Coxova transformace.
lambdaValue Nelze použít

Parametr Box-Coxovy transformace.

Ignoruje se při hodnotě NULL, nebo pokud má volba useBoxCox hodnotu FALSE.

Jinak jsou data před odhadem modelu transformována.

trendDamp

TRUE

FALSE

Jedná se o specifický model exponenciálního vyrovnávání.

Při hodnotě TRUE se použije zeslabený trend. Při hodnotě FALSE nebo NULL se použijte nezeslabený trend.

errorType

Nelze použít

Jedná se o specifický model exponenciálního vyrovnávání.
trendType

N (žádné)

A (přičítané)

M (násobné)

Z (automaticky vybrané)

Jedná se o specifický model exponenciálního vyrovnávání
seasonType

N (žádné)

A (přičítané)

M (násobné)

Z (automaticky vybrané)

Jedná se o specifický model exponenciálního vyrovnávání
modelParamIC

ic_auto

ic_aicc

ic_bic

ic_auto (jedná se o výchozí nastavení)

Informační kritérium (IC) použité při výběru modelu.

Funkce konverze

Převodní funkce převádí hodnotu na jinou hodnotu.

Funkce Příklad Popis Syntaxe

CAST

CAST(hiredate AS CHAR(40)) FROM employee

Tato funkce mění datový typ výrazu nebo literál typu null na jiný datový typ. Můžete například změnit typ pro jméno_zákazníka (datový typ CHAR nebo VARCHAR) nebo datum_narození (literál typu datum a čas).

Funkci CAST použijte ke změně na typ dat Date .

Nepoužívejte funkci TODATE.

CAST(výraz AS typ)

IFNULL

IFNULL(Prodej, 0)

Ověří, zda je výraz vyhodnocen jako hodnota null. Pokud je tomu tak, přiřadí výrazu zadanou hodnotu.

IFNULL(výraz, hodnota)

INDEXCOL

SELECT INDEXCOL(VALUEOF (NQ_SESSION.GEOGRAPHY_LEVEL), Země, Stát, Město), Výnosy FROM Prodej

Za použití externích informací vrací přihlášenému uživateli příslušný sloupec.

INDEXCOL([celočíselný literál], [výraz1] [, [výraz2], ?-])

NULLIF

SELECT z.prijmeni, NULLIF(z.id_prac_zarazeni, p.id_prac_zarazeni) "ID starého pracovního zařazení" FROM zamestnanci z, historie_prac_zarazeni p WHERE z.id_prac_zarazeni = p.id_zamestnance ORDER BY prijmeni, "ID starého pracovního zařazení";

Srovnává dva výrazy. Pokud jsou stejné, funkce vrátí hodnotu NULL. Pokud nejsou stejné, funkce vrátí první výraz. Pro první výraz nelze specifikovat literál null.

NULLIF([výraz], [výraz])

To_DateTime

SELECT To_DateTime ('2009-03-0301:01:00', 'yyyy-mm-dd hh:mi:ss') FROM prodej

Tato funkce převede řetězcové literály formátu DateTime na typ dat DateTime.

To_DateTime([výraz], [literál])

VALUEOF

SalesSubjectArea.Customer.Region = VALUEOF("Region Security"."REGION")

Odkazuje na hodnotu proměnné sémantického modelu ve filtru.

Jako argumenty funkce VALUEOF použijte proměnné výraz. Odkazuje na proměnné statického sémantického modelu podle názvu.

VALUEOF(výraz)

Funkce extrakce kalendářních dat

Tyto funkce vypočítají nebo zaokrouhlí dolů hodnoty časových značek na nejbližší zadané časové období, jako jsou hodina, den, týden, měsíc a čtvrtletí.

Vypočítané časové značky můžete použít k agregaci dat pomocí jiné úrovně podrobnosti. Můžete například použít funkci EXTRACTDAY() pro data prodejních objednávek, abyste vypočítali časovou značku pro půlnoc dne, kdy dojde k objednávce, a mohli jste tak agregovat data podle dnů.

Funkce Příklad Popis Syntaxe

Extrahovat den

EXTRACTDAY("Order Date")
  • Pro 2/22/1967 3:02:01 AM vrátí 2/22/1967 12:00:00 AM.
  • Pro 9/2/2022 10:38:21 AM vrátí 9/2/2022 12:00:00 AM.

Funkce vrátí časovou značku pro půlnoc (12 dop.) dne, ze kterého pochází vstupní hodnota. Pokud je například vstupní časová značka pro 3:02:01 dop. dne 22. února, funkce vrátí časovou značku pro 12:00:00 dop. dne 22. února.

EXTRACTDAY(expr)

Extrahovat hodinu

EXTRACTHOUR("Order Date")
  • Pro 2/22/1967 3:02:01 AM vrátí 2/22/1967 3:00:00 AM.
  • 6/17/1999 11:18:30 PM vrátí 6/17/1999 11:00:00 PM.

Funkce vrátí časovou značku pro začátek hodiny, ze které pochází vstupní hodnota. Pokud je například vstupní časová značka pro 11:18:30 odp., funkce vrátí časovou značku pro 11:00:00 odp.

EXTRACTHOUR (expr)

Extrahovat hodinu dne

EXTRACTHOUROFDAY("Order Date")
  • Pro 2014/09/24 10:58:00 vrátí 2000/01/01 10:00:00.
  • 2014/08/13 11:10:00 vrátí 2000/01/01 11:00:00

Funkce vrátí časovou značku, ve které hodina odpovídá hodině vstupní hodnoty a pro rok, měsíc, den, minuty a sekundy jsou použity výchozí hodnoty.

EXTRACTHOUROFDAY(expr)

Extrahovat milisekundu

EXTRACTMILLISECOND("Order Date")
  • Pro 1997/01/07 15:32:02.150 vrátí 1997/01/07 15:32:02.150.
  • Pro 1997/01/07 18:42:01.265 vrátí 1997/01/07 18:42:01.265.
Funkce vrátí časovou značku obsahující milisekundy ze vstupní hodnoty. Pokud je například vstupní časová značka pro 15:32:02.150, funkce vrátí časovou značku pro 15:32:02.150.

EXTRACTMILLISECOND(expr)

Extrahovat minutu

EXTRACTMINUTE("Order Date")
  • Pro 6/17/1999 11:18:00 PM vrátí 6/17/1999 11:18:00 PM.
  • Pro 9/2/2022 10:38:21 AM vrátí 9/2/2022 10:38:00 AM.

Funkce vrátí časovou značku pro začátek minuty, ze které pochází vstupní hodnota. Pokud je například vstupní časová značka pro 11:38:21 dop., funkce vrátí časovou značku pro 11:38:00 dop.

EXTRACTMINUTE (výraz)

Extrahovat měsíc

EXTRACTMONTH("Order Date")
  • Pro 2/22/1967 3:02:01 AM vrátí 2/1/1967 12:00:00 AM.
  • Pro 6/17/1999 11:18:00 PM vrátí 6/1/1999 12:00:00 AM.

Funkce vrátí časovou značku pro první den v měsíci, ze kterého pochází vstupní hodnota. Pokud je například vstupní časová značka pro den 22. února, funkce vrátí časovou značku pro den 1. února.

EXTRACTMONTH(expr)

Extrahovat čtvrtletí

EXTRACTQUARTER("Order Date")
  • Pro 2/22/1967 3:02:01 AM vrátí 1/1/1967 12:00:00 AM, první den prvního fiskálního čtvrtletí.
  • Pro 6/17/1999 11:18:00 PM vrátí 4/1/1999 12:00:00 AM, první den druhého fiskálního čtvrtletí.

  • Pro 9/2/2022 10:38:21 AM vrátí 7/1/2022 12:00:00 AM, první den třetího fiskálního čtvrtletí.

    Tip: Funkci QUARTER (výraz) použijte k výpočtu pouze řadového čtvrtletí z vrácené časové značky.

Funkce vrátí časovou značku pro první den čtvrtletí, ze kterého pochází vstupní hodnota. Pokud například vstupní časová značka pochází ze třetího fiskálního čtvrtletí, funkce vrátí časovou značku pro den 1. července.

EXTRACTQUARTER(expr)

Extrahovat sekundu

EXTRACTSECOND("Order Date")
  • Pro 1997/01/07 15:32:02.150 vrátí 1997/01/07 15:32:02.
  • Pro 1997/01/07 20:44:18.163 vrátí 1997/01/07 20:44:18.

Vrátí časovou značku pro vstupní hodnotu. Pokud je například vstupní časová značka pro 15:32:02.150, funkce vrátí časovou značku pro 15:32:02.

EXTRACTSECOND(expr)

Extrahovat týden

EXTRACTWEEK("Order Date")
  • Pro 2014/09/24 10:58:00 vrátí 2014/09/21.

  • Pro 2014/08/13 11:10:00 vrátí 2014/08/10.

Vrátí datum prvního dne v týdnu (neděle), ze kterého pochází vstupní hodnota. Pokud je například vstupní časová značka pro středu 24. září, funkce vrátí časovou značku pro neděli 21. září.

EXTRACTWEEK(expr)

Extrahovat rok

EXTRACTYEAR("Order Date")
  • Pro 1967/02/22 03:02:01 vrátí 1967/01/01 00:00:00.
  • Pro 1999/06/17 23:18:00 vrátí 1999/01/01 00:00:00.

Funkce vrátí časovou značku pro den 1. ledna roku, ze kterého pochází vstupní hodnota. Pokud například vstupní časová značka pochází z roku 1967, funkce vrátí časovou značku pro den 1. ledna 1967.

EXTRACTYEAR (výraz)

Tipy pro používání dimenzí kalendářních dat v cílových oblastech

Zde je uvedeno několik tipů, jak dosáhnout co nejlepších výsledků při použití kalendářních dat cílové oblasti ve výpočtech.

Přidání data cílové oblasti do výpočtu

Pokud přetáhnete datum z cílové oblasti přímo do výpočtu a zpracujete jej jako řetězec nebo celé číslo, dojde k chybě. K tomu dochází, protože podkladová hodnota kalendářních dat je časová značka.

Místo toho použijte k interpretaci data jednu z následujících funkcí: Funkce extrakce kalendářních dat.

Můžete mít například tato kalendářní data cílové oblasti.
Popis GUID-39C55B3A-A055-45D3-9904-948680247C08-default.png následuje
.png''

Chcete-li extrahovat měsíce z těchto kalendářních dat cílové oblasti, použijte funkci ExtractMonthOfYear:

case when monthname(ExtractMonthOfYear("Date")) in ('Jan' ,'Feb', 'Mar') 
THEN 'Q1' 
ELSE 'Rest of the year' END

Funkce zobrazení

Funkce zobrazení pracují s výslednou sadou dotazů.

Funkce Příklad Popis Syntaxe

BottomN

BottomN(Prodej, 10)

Vrátí n nejnižších hodnot výrazu seřazených od nejnižší po nejvyšší.

BottomN([číselný_výraz], [celé_číslo])

FILTER

FILTER(Prodej USING Produkt = 'widget')

Vypočítá výraz pomocí zadaného předagregovaného filtru.

FILTER(ukazatel USING výraz_filtru)

MAVG

MAVG(Prodej, 10)

Vypočítá klouzavou průměrnou (střední) hodnotu pro posledních n řádků dat v sadě výsledků včetně aktuálního řádku.

MAVG([číselný_výraz], [celé_číslo])

MSUM

SELECT Měsíc, Výnosy, MSUM(Výnosy, 3) as 3_MO_SUM FROM Prodej

Vypočítá klouzavý součet pro posledních n řádků dat včetně aktuálního řádku.

Součet pro první řádek se rovná numerickému výrazu pro první řádek. Součet pro druhý řádek se počítá jako součet prvních dvou řádků dat atd. Když je dosažen n -tý řádek, je vypočten součet na základě posledních n řádků dat.

MSUM([číselný_výraz], [celé_číslo])

NTILE

NTILE(Prodej, 100)

Určí pořadí hodnoty podle rozsahu zadaného uživatelem. Vrátí celá čísla představující rozsah zařazení. Na obrázku je rozmezí od 1 do 100; nejnižší prodej = 1 a nejvyšší prodej = 100.

NTILE([číselný_výraz], [celé_číslo])

PERCENTILE

PERCENTILE(Prodej)

Vypočítá percentilní pořadí každé z hodnot vyhovující číselnému argumentu výrazu. Percentilní zařazení je v rozsahu 0 (1. percentil) až 1 (100. percentil).

PERCENTILE([číselný_výraz])

RANK

RANK(Prodej)

Vypočítá pořadí každé z hodnot vyhovující číselnému argumentu výrazu. Nejvyšší hodnotě je přiřazeno zařazení 1 a dalším zařazením jsou postupně přiřazeny další celočíselné hodnoty (2, 3, 4 atd.). Jsou-li některé hodnoty stejné, bude jim přiřazeno stejné zařazení (například 1, 1, 1, 4, 5, 5, 7 atd.).

RANK([číselný_výraz])

RCOUNT

SELECT měsíc, zisk, RCOUNT(zisk) FROM prodej WHERE zisk > 200

Tato funkce použije sadu záznamů jako vstup a spočítá počet doposud zpracovaných záznamů.

RCOUNT([číselný_výraz])

RMAX

SELECT měsíc, zisk, RMAX(zisk) FROM prodej

Tato funkce použije sadu záznamů jako vstup a vrátí maximální hodnotu z doposud zpracovaných záznamů. Specifikovaný datový typ musí být takový typ, který lze řadit.

RMAX([číselný_výraz])

RMIN

SELECT měsíc, zisk, RMIN(zisk) FROM prodej

Tato funkce použije sadu záznamů jako vstup a vrátí minimální hodnotu z doposud zpracovaných záznamů. Specifikovaný datový typ musí být takový typ, který lze řadit.

RMIN([číselný_výraz])

RSUM

SELECT měsíc, výnosy, RSUM(výnosy) as RUNNING_SUM FROM prodej

Vypočítá klouzavý součet doposud zpracovaných záznamů.

Součet pro první řádek se rovná numerickému výrazu pro první řádek. Součet pro druhý řádek se počítá jako součet prvních dvou řádků dat atd.

RSUM([číselný_výraz])

TOPN

TOPN(Prodej, 10)

Vrátí n nejvyšších hodnot výrazu seřazených od nejvyšší po nejnižší.

TOPN([číselný_výraz], [celé_číslo])

Tipy pro používání funkcí zobrazení

  • FILTER – Pokud vytváříte sestavu pomocí cílové oblasti, použijte hierarchie definované v cílové oblasti místo filtrování sloupců hierarchie přímo ve výpočtu. Jinými slovy, pokud má cílová oblast hierarchii Čas \ Fiskální rok \ Fiskální čtvrtletí, pak se vyhněte následujícím příkazům:

    filter (<ukazatel> using fiscal_quarter = 'Q4')

    filter (<ukazatel> using fiscal_quarter = 'Q3')

    filter (<ukazatel> using fiscal_year = 'FY24')

Funkce vyhodnocení

Funkce vyhodnocení jsou databázové funkce, které lze použít pro procházení výrazů, abyste získali rozšířené výpočty.

Vložené databázové funkce mohou vyžadovat jeden nebo více sloupců. Na tyto sloupce se v rámci funkce odkazuje pomocí %1 ... %N. Za funkcí musí být uvedeny skutečné sloupce.

Funkce Příklad Popis Syntaxe

EVALUATE

SELECT EVALUATE('instr(%1, %2)', adresa, 'Praha') FROM zamestnanci

Předává zadanou databázovou funkci s volitelnými odkazovanými sloupci jako parametry do databáze k vyhodnocení.

EVALUATE([řetězcový výraz], [výrazy oddělené čárkami])

EVALUATE_AGGR

EVALUATE_AGGR('REGR_SLOPE(%1, %2)', prodej.mnozstvi, trh.klic_trhu)

Předává zadanou databázovou funkci s volitelnými odkazovanými sloupci jako parametry do databáze k vyhodnocení. Tato funkce je určená pro agregační funkce s klauzulí GROUP BY.

EVALUATE_AGGR('db_agr_funkce(%1...%N)' [datový typ AS] [, sloupec1, sloupecN])

Matematické funkce

Matematické funkce popsané v této části vykonávají matematické operace.

Funkce Příklad Popis Syntaxe

ABS

ABS(Zisk)

Vypočítá absolutní hodnotu číselného výrazu.

Parametr výraz je libovolný vyhodnocovaný výraz, jehož výsledkem je číselná hodnota.

ABS(výraz)

ACOS

ACOS(1)

Vypočítá arkuskosinus číselného výrazu.

Parametr výraz je libovolný vyhodnocovaný výraz, jehož výsledkem je číselná hodnota.

ACOS(výraz)

ASIN

ASIN(1)

Vypočítá arkussinus číselného výrazu.

Parametr výraz je libovolný vyhodnocovaný výraz, jehož výsledkem je číselná hodnota.

ASIN(výraz)

ATAN

ATAN(1)

Vypočítá arkustangens číselného výrazu.

Parametr výraz je libovolný vyhodnocovaný výraz, jehož výsledkem je číselná hodnota.

ATAN(výraz)

ATAN2

ATAN2(1, 2)

Vypočítá arkustangens y/x, kde y je první číselný výraz a x je druhý číselný výraz.

ATAN2(výraz1, výraz2)

CEILING

CEILING(Zisk)

Zaokrouhlí číselný výraz, který není celočíselný, na další nejvyšší celé číslo. Pokud je číselný výraz vyhodnocen jako celé číslo, vrátí funkce CEILING toto celé číslo.

CEILING(výraz)

COS

COS(1)

Vypočítá kosinus číselného výrazu.

Parametr výraz je libovolný vyhodnocovaný výraz, jehož výsledkem je číselná hodnota.

COS(výraz)

COT

COT(1)

Vypočítá kotangens číselného výrazu.

Parametr výraz je libovolný vyhodnocovaný výraz, jehož výsledkem je číselná hodnota.

COT(výraz)

DEGREES

DEGREES(1)

Převede výraz z radiánů na stupně.

Parametr výraz je libovolný vyhodnocovaný výraz, jehož výsledkem je číselná hodnota.

DEGREES(výraz)

EXP

EXP(4)

Vrátí hodnotu e umocněnou na zadanou mocninu. Vypočítá konstantu e umocněnou na n-tou, kde e je základ přirozeného logaritmu.

EXP(výraz)

ExtractBit

Int ExtractBit(1, 5)

Načte bit na určité pozici v celém čísle. Vrátí celé číslo 0 nebo 1 v závislosti na umístění tohoto bitu.

ExtractBit([zdrojové číslo], [číslice])

FLOOR

FLOOR(Zisk)

Zaokrouhlí číselný výraz, který není celočíselný, na další nejnižší celé číslo. Pokud je číselný výraz vyhodnocen jako celé číslo, vrátí funkce FLOOR toto celé číslo.

FLOOR(výraz)

LOG

LOG(1)

Vypočítá přirozený logaritmus výrazu.

Parametr výraz je libovolný vyhodnocovaný výraz, jehož výsledkem je číselná hodnota.

LOG(výraz)

LOG10

LOG10(1)

Vypočítá desítkový logaritmus výrazu.

Parametr výraz je libovolný vyhodnocovaný výraz, jehož výsledkem je číselná hodnota.

LOG10(výraz)

MOD

MOD(10, 3)

Vydělí první číselný výraz druhým číselným výrazem a vrátí zbytkovou část podílu.

MOD(výraz1, výraz2)

PI

PI()

Vrátí konstantní hodnotu pí.

PI()

POWER

POWER(Zisk, 2)

Umocní první číselný výraz na mocninu určenou druhým číselným výrazem.

POWER(výraz1, výraz2)

RADIANS

RADIANS(30)

Převede výraz ze stupňů na radiány.

Parametr výraz je libovolný vyhodnocovaný výraz, jehož výsledkem je číselná hodnota.

RADIANS(výraz)

RAND

RAND()

Vrátí pseudonáhodné číslo v rozsahu 0 až 1.

RAND()

RANDFromSeed

RAND(2)

Vrátí pseudonáhodné číslo podle zdrojové hodnoty. Pro určitou zdrojovou hodnotu je vygenerována stejná množina náhodných čísel.

RAND(výraz)

ROUND

ROUND(2.166000, 2)

Zaokrouhlí číselný výraz na n desetinných míst.

Parametr výraz je libovolný vyhodnocovaný výraz, jehož výsledkem je číselná hodnota.

integer je jakékoliv kladné celé číslo představující počet číslic přesnosti.

ROUND(výraz, celé_číslo)

SIGN

SIGN(Zisk)

Vrátí následující:

  • Hodnotu 1, pokud se číselný výraz vyhodnotí jako kladné číslo

  • Hodnotu -1, pokud se číselný výraz vyhodnotí jako záporné číslo

  • Hodnotu 0, pokud se číselný výraz vyhodnotí jako nula

SIGN(výraz)

SIN

SIN(1)

Vypočítá sinus číselného výrazu.

SIN(výraz)

SQRT

SQRT(7)

Vypočítá druhou odmocninu argumentu číselného výrazu. Tento číselný výraz musí být vyhodnocen jako nezáporné číslo.

SQRT(výraz)

TAN

TAN(1)

Vypočítá tangens číselného výrazu.

Parametr výraz je libovolný vyhodnocovaný výraz, jehož výsledkem je číselná hodnota.

TAN(výraz)

TRUNCATE

TRUNCATE(45.12345, 2)

Zkrátí desetinné číslo na zadaný počet desetinných míst.

Parametr výraz je libovolný vyhodnocovaný výraz, jehož výsledkem je číselná hodnota.

integer je jakékoliv kladné celé číslo představující počet znaků vpravo od desetinné čárky, které budou vráceny.

TRUNCATE(výraz, celé_číslo)

Funkce průběžné agregace

Funkce průběžné agregace provádějí operace s větším počtem hodnot a vytvářejí souhrnné výsledky.

Funkce Příklad Popis Syntaxe

MAVG

 

Vypočítá klouzavou průměrnou (střední) hodnotu pro posledních n řádků dat v sadě výsledků včetně aktuálního řádku.

Parametr výraz je libovolný vyhodnocovaný výraz, jehož výsledkem je číselná hodnota. Parametr celé_číslo je libovolné kladné celé číslo. Představuje průměrnou hodnotu posledních n řádků dat.

MAVG(výraz, celé_číslo)

MSUM

SELECT měsíc, výnosy, MSUM(výnosy, 3) as 3_MO_SUM FROM cílová_oblast_prodeje

Vypočítá klouzavý součet pro posledních n řádků dat včetně aktuálního řádku.

Parametr výraz je libovolný vyhodnocovaný výraz, jehož výsledkem je číselná hodnota. Parametr celé_číslo je libovolné kladné celé číslo. Představuje součet posledních n řádků dat.

MSUM(výraz, celé_číslo)

RSUM

SELECT měsíc, výnosy, RSUM(výnosy) as RUNNING_SUM FROM cílová_oblast_prodeje

Vypočítá klouzavý součet doposud zpracovaných záznamů.

Parametr výraz je libovolný vyhodnocovaný výraz, jehož výsledkem je číselná hodnota.

RSUM(výraz)

RCOUNT

SELECT měsíc, zisk, RCOUNT(zisk) FROM cílová_oblast_prodeje WHERE zisk > 200

Tato funkce použije sadu záznamů jako vstup a spočítá počet doposud zpracovaných záznamů.

Parametr výraz je výraz libovolného typu dat.

RCOUNT(výraz)

RMAX

SELECT měsíc, zisk, RMAX(zisk) FROM cílová_oblast_prodeje

Tato funkce použije sadu záznamů jako vstup a vrátí maximální hodnotu z doposud zpracovaných záznamů.

Parametr výraz je výraz libovolného typu dat.

RMAX(výraz)

RMIN

SELECT měsíc, zisk, RMIN(zisk) FROM cílová_oblast_prodeje

Tato funkce použije sadu záznamů jako vstup a vrátí minimální hodnotu z doposud zpracovaných záznamů.

Parametr výraz je výraz libovolného typu dat.

RMIN(výraz)

Prostorové funkce

Prostorové funkce umožňují provádět geografické analýzy při modelování dat. Můžete například vypočítat vzdálenost mezi dvěma geografickými oblastmi (označovanými jako tvary nebo mnohoúhelníky).

Poznámka:

Tyto prostorové funkce nemůžete používat ve vlastních výpočtech v sešitech vizualizace.
Funkce Příklad Popis Syntaxe
GeometryArea

GeometryArea(tvar)

Vypočítá oblast, kterou zabírá tvar.

GeometryArea(tvar)

GeometryDistance

GeometryDistance(TRIP_START, TRIP_END)

Vypočítá vzdálenost mezi dvěma tvary.

GeometryDistance(tvar 1, tvar 2)

GeometryLength

GeometryLength(tvar)

Vypočítá obvod tvaru.

GeometryLength(tvar)

GeometryRelate

GeometryRelate(TRIP_START, TRIP_END)

Určí, zda se jeden tvar nachází uvnitř jiného tvaru. Vrátí hodnotu TRUE nebo FALSE jako řetězec (varchar).

GeometryRelate(tvar 1, tvar 2)

GeometryWithinDistance

GeometryWithinDistance(TRIP_START, TRIP_END, 500)

Určí, zda jsou dva tvary v rámci zadané vzdálenosti o sebe. Vrátí hodnotu TRUE nebo FALSE jako řetězec (varchar).

GeometryWithinDistance(Shape1, Shape2, DistanceInFloat)

Řetězcové funkce

Řetězcové funkce provádějí různé manipulace se znaky. Pracují s řetězci znaků.

Funkce Příklad Popis Syntaxe

ASCII

ASCII('a')

Převede řetězec s jedním znakem na odpovídající kód ASCII v rozsahu 0 až 255. Pokud se znakový výraz vyhodnotí jako několik znaků, vrátí funkce kód ASCII odpovídající prvnímu znaku ve výrazu.

výraz je libovolný výraz, který určuje řetězec znaků.

ASCII(výraz)

BIT_LENGTH

BIT_LENGTH('abcdef')

Vrátí délku zadaného řetězce v bitech. Každý znak Unicode má délku 2 bajty (tj. 16 bitů).

výraz je libovolný výraz, který určuje řetězec znaků.

BIT_LENGTH(výraz)

CHAR

CHAR(35)

Převede číselnou hodnotu v rozsahu 0 až 255 na znakovou hodnotu odpovídající příslušnému kódu ASCII.

výraz je libovolný výraz, který určuje číselnou hodnotu v rozmezí 0 až 255.

CHAR(výraz)

CHAR_LENGTH

CHAR_LENGT(Jméno_zákazníka)

Vrátí délku zadaného řetězce ve znacích. Prázdné znaky na začátku a na konci se do délky řetězce nezapočítávají.

výraz je libovolný výraz, který určuje řetězec znaků.

CHAR_LENGTH(výraz)

CONCAT

SELECT DISTINCT CONCAT ('abc', 'def') FROM zaměstnanec

Zřetězí dva znakové řetězce.

výrazy jsou výrazy, které určují řetězce znaků oddělené čárkami.

S funkcí CONCAT musíte použít nezpracovaná a neformátovaná data.

CONCAT(výraz1, výraz2)

INSERT

SELECT INSERT('123456', 2, 3, 'abcd') FROM tabulka

Vloží zadaný znakový řetězec na určené místo v jiném znakovém řetězci.

výraz1 je libovolný výraz, který je vyhodnocen jako řetězec znaků. Určuje cílový znakový řetězec.

integer1 je kladné celé číslo představující počet znaků od začátku cílového řetězce, kam se se vloží druhý řetězec.

integer2 je kladné celé číslo představující počet znaků v cílovém řetězci, které se nahradí druhým řetězcem.

výraz2 je libovolný výraz, který je vyhodnocen jako řetězec znaků. Určuje znakový řetězec, který se vloží do cílového řetězce.

INSERT(výraz1, celé_číslo1, celé_číslo2, výraz2)

LEFT

SELECT LEFT('123456', 3) FROM tabulka

Vrátí určený počet znaků od levého konce řetězce.

výraz je libovolný výraz, který určuje řetězec znaků.

integer1 je kladné celé číslo představující počet znaků od levého konce řetězce, které se vrátí.

LEFT(výraz, celé_číslo)

LENGTH

LENGTH(Jméno_zákazníka)

Vrátí délku zadaného řetězce ve znacích. Prázdné znaky na začátku a na konci se do vrácené délky nezapočítávají.

výraz je libovolný výraz, který určuje řetězec znaků.

LENGTH(výraz)

LOCATE

LOCATE('d' 'abcdef')

Vrátí pozici znakového řetězce v jiném znakovém řetězci jako číselnou hodnotu. Pokud není znakový řetězec nalezen v prohledávaném řetězci, vrátí funkce hodnotu 0.

výraz1 je libovolný výraz, který je vyhodnocen jako řetězec znaků. Určuje řetězec, který se bude vyhledávat.

výraz2 je libovolný výraz, který je vyhodnocen jako řetězec znaků.

Určuje řetězec, který se bude prohledávat.

LOCATE(výraz1, výraz2)

LOCATEN

LOCATEN('d' 'abcdef', 3)

Stejně jako funkce LOCATE vrátí pozici znakového řetězce v jiném znakovém řetězci jako číselnou hodnotu. Funkce LOCATEN obsahuje celočíselný argument, který umožňuje zadat počáteční pozici pro zahájení vyhledávání.

výraz1 je libovolný výraz, který je vyhodnocen jako řetězec znaků. Určuje řetězec, který se bude vyhledávat.

výraz2 je libovolný výraz, který je vyhodnocen jako řetězec znaků. Určuje řetězec, který se bude prohledávat.

integer je kladné (nenulové) celé číslo představující počáteční pozici, od které se začne prohledávat znakový řetězec.

LOCATEN(výraz1, výraz2, celé_číslo)

LOWER

LOWER(Jméno_zákazníka)

Převede znakový řetězec na malá písmena.

výraz je libovolný výraz, který určuje řetězec znaků.

LOWER(výraz)

OCTET_LENGTH

OCTET_LENGTH('abcdef')

Vrátí počet bajtů zadaného řetězce.

výraz je libovolný výraz, který určuje řetězec znaků.

OCTET_LENGTH(výraz)

POSITION

POSITION('d', 'abcdef')

Vrátí číselnou pozici výrazu strExpr1 ve znakovém výrazu. Není-li řetězec strExpr1 nalezen, funkce vrátí 0.

výraz1 je libovolný výraz, který je vyhodnocen jako řetězec znaků. Určuje řetězec, který se bude vyhledávat v cílovém řetězci. Například „d“.

výraz2 je libovolný výraz, který je vyhodnocen jako řetězec znaků. Určuje cílový řetězec, který se bude prohledávat. Například „abcdef“.

POSITION(výraz1, výraz2)

REPEAT

REPEAT('abc', 4)

Zopakuje zadaný výraz nkrát.

výraz je libovolný výraz, který určuje řetězec znaků.

integer je kladné celé číslo představující počet opakování znakového řetězce.

REPEAT(výraz, celé_číslo)

REPLACE

REPLACE('abcd1234', '123', 'zz')

Nahradí jeden nebo více znaků v zadaném znakovém výrazu jedním nebo více znaky.

výraz1 je libovolný výraz, který je vyhodnocen jako řetězec znaků. Je to řetězec, ve kterém se budou nahrazovat znaky.

výraz2 je libovolný výraz, který je vyhodnocen jako řetězec znaků. Tento druhý řetězec určuje znaky z prvního řetězce, které se mají nahradit.

výraz3 je libovolný výraz, který je vyhodnocen jako řetězec znaků. Tento třetí řetězec určuje znaky, které se vloží do prvního řetězce.

REPLACE(výraz1, výraz2, výraz3)

RIGHT

SELECT RIGHT('123456', 3) FROM tabulka

Vrátí zadaný počet znaků řetězce zprava.

výraz je libovolný výraz, který určuje řetězec znaků.

integer je kladné celé číslo představující počet znaků od pravého konce řetězce, které se vrátí.

RIGHT(výraz, celé_číslo)

SPACE

SPACE(2)

Vloží mezery.

integer je kladné celé číslo představující počet vkládaných mezer.

SPACE(výraz)

SUBSTRING

SUBSTRING('abcdef' FROM 2)

Vytvoří nový řetězec začínající od pevně stanoveného počtu znaků v původním řetězci.

výraz je libovolný výraz, který určuje řetězec znaků.

počáteční_pozice je kladné celé číslo představující počet znaků od levého konce řetězce, kde začíná výsledný řetězec.

SUBSTRING([zdrojový_řetězec] FROM [počáteční_pozice])

SUBSTRINGN

SUBSTRING('abcdef' FROM 2 FOR 3)

Stejně jako funkce SUBSTRING vytvoří nový řetězec začínající od pevně stanoveného počtu znaků v původním řetězci.

Funkce SUBSTRINGN obsahuje celočíselný argument, který umožňuje zadat délku nového řetězce formou počtu znaků.

výraz je libovolný výraz, který určuje řetězec znaků.

počáteční_pozice je kladné celé číslo představující počet znaků od levého konce řetězce, kde začíná výsledný řetězec.

SUBSTRING(výraz FROM počáteční_pozice FOR délka)

TrimBoth

Trim(BOTH '_' FROM '_abcdef_')

Odstraní zadané počáteční a koncové znaky ze znakového řetězce.

znak je libovolný jeden znak. Pokud jej nespecifikujete (včetně požadovaných jednoduchých uvozovek), nastaví se jako výchozí hodnota prázdný znak.

výraz je libovolný výraz, který určuje řetězec znaků.

TRIM(BOTH znak FROM výraz)

TRIMLEADING

TRIM(LEADING '_' FROM '_abcdef')

Odstraní zadané počáteční znaky ze znakového řetězce.

znak je libovolný jeden znak. Pokud jej nespecifikujete (včetně požadovaných jednoduchých uvozovek), nastaví se jako výchozí hodnota prázdný znak.

výraz je libovolný výraz, který určuje řetězec znaků.

TRIM(LEADING znak FROM výraz)

TRIMTRAILING

TRIM(TRAILING '_' FROM 'abcdef_')

Odstraní zadané koncové znaky ze znakového řetězce.

znak je libovolný jeden znak. Pokud jej nespecifikujete (včetně požadovaných jednoduchých uvozovek), nastaví se jako výchozí hodnota prázdný znak.

výraz je libovolný výraz, který určuje řetězec znaků.

TRIM(TRAILING znak FROM výraz)

UPPER

UPPER(Jméno_zákazníka)

Převede znakový řetězec na velká písmena.

výraz je libovolný výraz, který určuje řetězec znaků.

UPPER(výraz)

Tipy pro používání řetězcových funkcí

Zde je uvedeno několik tipů, jak dosáhnout co nejlepších výsledků při používání řetězcových funkcí v sešitech.

Zřetězte více hodnot:

Ke zřetězení více hodnot do jedné buňky a jednoho řádku použijte funkci LISTAGG.

listagg(<column to concatenate> by <grouping column>)

Pokud je výsledný řetězec příliš dlouhý, přidejte atribut on overflow truncate, a pokud hodnoty nejsou jedinečné, přidejte atribut distinct.

Například:

listagg(distinct City_ID by STATE on overflow truncate)

Systémové funkce

Systémová funkce USER vrátí hodnotu týkající se relace. Například uživatelské jméno, pod kterým jste přihlášeni.

Funkce Příklad Popis Syntaxe

DATABASE

 

Vrátí název cílové oblasti, ke které jste přihlášeni.

DATABASE()

USER

 

Vrátí uživatelské jméno pro sémantický model, ke kterému jste přihlášeni.

USER()

Funkce časové řady

Funkce časových řad umožňují agregovat a předpovídat data na základě časových dimenzí. Můžete například použít funkci AGO k výpočtu výnosů za období před jedním rokem.

Prvky časových dimenzí musí být na úrovni funkce nebo pod ní. Proto se v dotazu musí promítnout jeden nebo více sloupců, které jednoznačně identifikují členy na dané úrovni nebo pod ní.

Funkce Příklad Popis Syntaxe

AGO

SELECT ID_roku, AGO(prodej, rok, 1)

Vypočítá agregovanou hodnotu ukazatele ve stanoveném časovém období v minulosti. Chcete-li například vypočítat měsíční výnosy před jedním rokem, použijte výraz AGO(Revenue, Year, 1, SHIP_MONTH). Chcete-li vypočítat čtvrtletní výnosy za poslední čtvrtletí, použijte výraz AGO(Revenue, Quarter, 1).

AGO(MEASURE, TIME_LEVEL, OFFSET)

Kde:

  • Parametr MEASURE představuje ukazatel pro výpočet, například výnosy.
  • Parametr TIME_LEVEL představuje časový interval, kterým musí být rok, čtvrtletí, měsíc, týden nebo den.
  • Parametr OFFSET představuje počet časových intervalů pro zpětný výpočet za uplynulé období, například hodnota 1 pro jeden rok.

PERIODROLLING

SELECT ID_měsíce, PERIODROLLING (měsíční_prodej, -1, 1)

Vypočítá agregaci ukazatele za období od x časových jednotek do y časových jednotek počínaje aktuálním časem. Funkce PERIODROLLING například vypočítá prodej za období, které začíná ve čtvrtletí před aktuálním čtvrtletím a končí ve čtvrtletí po aktuálním čtvrtletí.

PERIODROLLING(ukazatel, x [,y])

Kde:

  • Parametr MEASURE představuje název sloupce ukazatele.
  • Parametr X je celé číslo představující posun oproti aktuálnímu času.
  • Parametr Y je celé číslo představující počet časových jednotek, pro které funkce provede výpočet.
  • HIERARCHY je volitelný argument, který představuje název hierarchie v časové dimenzi, například YR, MON, DAY, kterou chcete použít pro výpočet časového okna.

TODATE

SELECT ID_roku, ID_měsíce, TODATE (prodej, rok)

Vypočítá agregovanou hodnotu ukazatele od začátku časového období do nejnovějšího období. Může se jednat například o výpočty za období od začátku roku.

Chcete-li například vypočítat objem prodeje od začátku roku, použijte výraz TODATE(sales, year).

TODATE(MEASURE, TIME_LEVEL)

Kde:

  • Parametr MEASURE představuje výraz, který odkazuje alespoň na jeden sloupec ukazatele, například na sloupec s údaji o prodeji.
  • Parametr TIME_LEVEL představuje časový interval, kterým musí být rok, čtvrtletí, měsíc, týden nebo den.