Funkcie

Existujú rôzne typy funkcií, ktoré môžete používať vo výrazoch.

Témy:

Analytické funkcie

Analytické funkcie vám umožňujú skúmať dáta pomocou modelov, ako je prognóza, trendová spojnica a klaster. Analytické funkcie môžete presunúť myšou do editora zošita.

Prognózy, trendové spojnice a klastre môžete do zošita pridať aj tak, že ich vyberiete na karte Analytika na paneli Dáta v editore zošita. Pozrite si časť Pridanie funkcií štatistickej analytiky do vizualizácií.

Funkcia Príklad Popis Syntax

CLUSTER

CLUSTER((product, company), (billed_quantity, revenue), 'clusterName', 'algorithm=k-means;numClusters=%1;maxIter=%2;useRandomSeed=FALSE;enablePartitioning=TRUE', 5, 10)

Zhromažďuje množinu záznamov do skupín na základe jedného alebo viacerých vstupných výrazov pomocou metód K-Means alebo hierarchického klastrovania.

CLUSTER((dimension_expr1 , ... dimension_exprN), (expr1, ... exprN), output_column_name, options, [runtime_binded_options])

FORECAST

Príklad prognózy výnosov podľa dňa

V tomto príklade sa prognóza výnosov vyberá podľa dňa.

FORECAST("A - Sample Sales"."Base Facts"."1- Revenue" Target,
("A - Sample Sales"."Time"."T00 Calendar Date"),'forecast', 'numPeriods=30;predictionInterval=70;') ForecastedRevenue

Príklad prognózy výnosov podľa roka a štvrťroka

V tomto príklade sa prognóza výnosov vyberá podľa roka a štvrťroka.

FORECAST("A - Sample Sales"."Base Facts"."1- Revenue",
("A - Sample Sales"."Time"."T01 Year" timeYear, "A - Sample Sales"."Time"."T02 Quarter" TimeQuarter),'forecast', 'numPeriods=30;predictionInterval=70;') ForecastedRevenue

Vytvorí model časovej série zadanej miery série pomocou metódy exponenciálneho vyhladzovania (ETS), sezónneho modelu ARIMA, modelu ARIMA alebo modelu Prophet. Výstupom tejto funkcie je prognóza pre množinu období, ktorá je zadaná v argumente numPeriods.

Pozrite si aj ďalšie voľby funkcie FORECAST uvedené nižšie.

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

Kde:

  • measure predstavuje mieru na prognózovanie, napríklad dáta výnosov.

  • series predstavuje štruktúru času, ktorá sa použije na zostavenie modelu prognózy. Séria je zoznam jedného alebo viacerých stĺpcov časových dimenzií. Ak parameter series vynecháte, štruktúru času určí dopyt.

  • output_column_name predstavuje platné názvy stĺpcov forecast, low, high a predictionInterval.

  • options predstavuje zoznam reťazcov párov názov/hodnota oddelených bodkočiarkou (;). Hodnota môže zahŕňať parameter %1 ... %N zadaný v zozname runtime_binded_options.

  • runtime_binded_options predstavuje zoznam stĺpcov a volieb oddelených čiarkami. Hodnoty pre tieto stĺpce a voľby sa vyhodnotia a rozpoznajú počas času vykonávania individuálneho dopytu.

Pozrite si aj ďalšie voľby funkcie FORECAST uvedené nižšie.

OUTLIER

OUTLIER((product, company), (billed_quantity, revenue), 'isOutlier', 'algorithm=kmeans')

Klasifikuje záznam ako odľahlý na základe jedného alebo viacerých vstupných výrazov pomocou metód K-Means alebo hierarchického klastrovania, prípadne pomocou multivariantných algoritmov detekcie odľahlých hodnôt.

OUTLIER((dimension_expr1 , ... dimension_exprN), (expr1, ... exprN), output_column_name, options, [runtime_binded_options])

REGR

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

Prispôsobí lineárny model a vráti prispôsobené hodnoty alebo model. Táto funkcia sa môže použiť na prispôsobenie lineárnej krivky pre dve miery.

REGR(y_axis_measure_expr, (x_axis_expr), (category_expr1, ..., category_exprN), output_column_name, options, [runtime_binded_options])

TRENDLINE

TRENDLINE(revenue, (calendar_year, calendar_quarter, calendar_month) BY (product), 'LINEAR', 'VALUE')

Spoločnosť Oracle odporúča, aby ste pri zobrazení vizualizácie použili trendovú spojnicu pomocou vlastnosti Pridať štatistiku. Pozrite si časť Úprava vlastností vizualizácie.

Prispôsobí lineárny, polynomický alebo exponenciálny model a vráti prispôsobené hodnoty alebo model. Parameter numeric_expr predstavuje hodnotu Y pre trend a parameter series (stĺpce času) predstavuje hodnotu X.

TRENDLINE(numeric_expr, ([series]) BY ([partitionBy]), model_type, result_type)

Voľby funkcie FORECAST V nasledujúcej tabuľke je zoznam dostupných volieb, ktoré je možné používať s funkciou FORECAST.

Názov voľby Hodnoty Popis
numPeriods Celé číslo Počet období na prognózovanie.
predictionInterval Od 0 do 100, pričom vyššie hodnoty určujú vyššiu spoľahlivosť Úroveň spoľahlivosti predikcie.
modelType

ETS (exponenciálne vyhladzovanie)

SeasonalArima

ARIMA

Prophet

Model, ktorý sa má používať pri prognózovaní.
useBoxCox

TRUE

FALSE

Ak je hodnota TRUE, použite transformáciu Box-Cox.
lambdaValue Nepoužíva sa

Parameter transformácie Box-Cox.

Ignorujte, ak je hodnota NULL alebo ak hodnota voľby useBoxCox je FALSE.

V opačnom prípade sa dáta transformujú ešte pred odhadnutím modelu.

trendDamp

TRUE

FALSE

Toto je špecifické pre model exponenciálneho vyhladzovania.

Ak je hodnota TRUE, použite tlmený trend. Ak je hodnota FALSE alebo NULL, použite netlmený trend.

errorType

Nepoužíva sa

Toto je špecifické pre model exponenciálneho vyhladzovania.
trendType

N (žiadne)

A (pridávané)

M (násobené)

Z (automaticky vybraté)

Toto je špecifické pre model exponenciálneho vyhladzovania.
seasonType

N (žiadne)

A (pridávané)

M (násobené)

Z (automaticky vybraté)

Toto je špecifické pre model exponenciálneho vyhladzovania.
modelParamIC

ic_auto

ic_aicc

ic_bic

ic_auto (predvolená hodnota)

Kritérium informácií (IC) použité vo výbere modelu.

Funkcie konverzie

Funkcie konverzie umožňujú konvertovať hodnotu z jedného formátu do iného.

Funkcia Príklad Popis Syntax

CAST

CAST(hiredate AS CHAR(40)) FROM employee

Zmení dátový typ výrazu alebo literálu null na iný dátový typ. Môžete previesť napríklad reťazec customer_name (dátový typ CHAR alebo VARCHAR), prípadne reťazec birthdate (literál typu datetime).

Pomocou funkcie CAST môžete vykonať zmenu na dátový typ Date.

Nepoužívajte na to funkciu TODATE.

CAST(expr AS type)

IFNULL

IFNULL(Sales, 0)

Otestuje, či sa výraz vyhodnotí na hodnotu null, a ak áno, priradí výrazu zadanú hodnotu.

IFNULL(expr, value)

INDEXCOL

SELECT INDEXCOL(VALUEOF ("NQ_SESSION"."GEOGRAPHY_LEVEL"), Country, State, City), Revenue FROM Sales

Používa externé informácie na vrátenie zodpovedajúceho stĺpca na zobrazenie prihlásenému používateľovi.

INDEXCOL([integer literal], [expr1] [, [expr2], ?-])

NULLIF

SELECT e.last_name, NULLIF(e.job_id, j.job_id) "Old Job ID" FROM employees e, job_history j WHERE e.employee_id = j.employee_id ORDER BY last_name, "Old Job ID";

Porovnáva dva výrazy. Ak sú rovnaké, funkcia vráti hodnotu NULL. Ak nie sú rovnaké, funkcia vráti prvý výraz. Nemôžete zadať literál NULL ako prvý výraz.

NULLIF([expression], [expression])

To_DateTime

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

Konvertuje reťazcové literály vo formáte DateTime na dátový typ DateTime.

To_DateTime([expression], [literal])

VALUEOF

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

Odkazuje na hodnotu premennej sémantického modelu vo filtri.

Použite premenné expr ako argumenty funkcie VALUEOF. Na statické premenné sémantického modelu odkazujte ich názvom.

VALUEOF(expr)

Funkcie na extrakciu dátumu

Tieto funkcie vypočítajú alebo zaokrúhlia nadol hodnoty časových značiek na najbližšie zadané časové obdobie, ako hodina, deň, týždeň, mesiac a štvrťrok.

Pomocou vypočítaných časových značiek môžete dáta agregovať na rôznych úrovniach granularity. Môžete napríklad použiť funkciu EXTRACTDAY() na dátumy predajných objednávok na výpočet časovej značky pre polnoc dňa výskytu objednávok, aby ste dáta mohli agregovať podľa dňa.

Funkcia Príklad Popis Syntax

Extrahovať deň

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

Vráti časovú značku pre polnoc (12 AM) dňa výskytu vstupnej hodnoty. Ak napríklad časová značka vstupu je pre čas 3:02:01 AM dňa 22. februára, funkcia vráti časovú značku 12:00:00 AM pre 22. február.

EXTRACTDAY(expr)

Extrahovať hodinu

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

Vráti časovú značku pre začiatok hodiny výskytu vstupnej hodnoty. Ak napríklad časová značka vstupu je pre čas 11:18:30 PM, funkcia vráti časovú značku 11:00:00 PM.

EXTRACTHOUR (expr)

Extrahovať hodinu dňa

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

Vráti časovú značku, ktorej hodina sa rovná hodine vstupnej hodnoty s predvolenými hodnotami pre rok, mesiac, deň, minúty a sekundy.

EXTRACTHOUROFDAY(expr)

Extrahovať milisekundu

EXTRACTMILLISECOND("Order Date")
  • 1997/01/07 15:32:02.150 vráti 1997/01/07 15:32:02.150.
  • 1997/01/07 18:42:01.265 vráti 1997/01/07 18:42:01.265.
Vráti časovú značku obsahujúcu milisekundy pre vstupnú hodnotu. Ak napríklad časová značka vstupu je pre čas 15:32:02.150, funkcia vráti časovú značku 15:32:02.150.

EXTRACTMILLISECOND(expr)

Extrahovať minútu

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

Vráti časovú značku pre začiatok minúty výskytu vstupnej hodnoty. Ak napríklad časová značka vstupu je pre čas 11:38:21 AM, funkcia vráti časovú značku 11:38:00 AM.

EXTRACTMINUTE (expr)

Extrahovať mesiac

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

Vráti časovú značku pre prvý deň v mesiaci výskytu vstupnej hodnoty. Ak napríklad časová značka vstupu je pre 22. február, funkcia vráti časovú značku pre 1. február.

EXTRACTMONTH(expr)

Extrahovať štvrťrok

EXTRACTQUARTER("Order Date")
  • 2/22/1967 3:02:01 AM vráti 1/1/1967 12:00:00 AM, čo je prvý deň prvého fiškálneho štvrťroka.
  • 6/17/1999 11:18:00 PM vráti 4/1/1999 12:00:00 AM, čo je prvý deň druhého fiškálneho štvrťroka.

  • 9/2/2022 10:38:21 AM vráti 7/1/2022 12:00:00 AM, čo je prvý deň tretieho fiškálneho štvrťroka.

    Tip: Použite funkciu QUARTER (expr) na výpočet poradia štvrťroka z vrátenej časovej značky.

Vráti časovú značku pre prvý deň v štvrťroku výskytu vstupnej hodnoty. Ak sa napríklad časová značka vstupu vyskytne v treťom fiškálnom štvrťroku, funkcia vráti časovú značku pre 1. júl.

EXTRACTQUARTER(expr)

Extrahovať sekundu

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

Vráti časovú značku pre vstupnú hodnotu. Ak napríklad časová značka vstupu je pre čas 15:32:02.150, funkcia vráti časovú značku 15:32:02.

EXTRACTSECOND(expr)

Extrahovať týždeň

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

  • 2014/08/13 11:10:00 vráti 2014/08/10.

Vráti dátum prvého dňa v týždni (nedeľa) výskytu vstupnej hodnoty. Ak napríklad časová značka vstupu je pre stredu 24. septembra, funkcia vráti časovú značku pre nedeľu 21. septembra.

Poznámka: Ak prvý deň týždňa (t. j. nedeľa) spadá do predchádzajúceho roka, a preto by mohol nepriaznivo ovplyvniť agregáciu, funkcia namiesto prvého dňa týždňa v predchádzajúcom roku vráti 7. deň týždňa (t. j. sobotu) v aktuálnom roku. Napríklad dátumy 1/1/24, 1/2/24 a 1/3/24 sa všetky agregujú na sobotu 1/6/24, nie na nedeľu 12/29/23.

EXTRACTWEEK(expr)

Extrahovať rok

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

Vráti časovú značku pre 1. január roka výskytu vstupnej hodnoty. Ak napríklad časová značka vstupu je z roka 1967, funkcia vráti časovú značku pre 1. január 19967.

EXTRACTYEAR (expr)

Tipy na používanie dimenzií dátumov v tematických oblastiach

Tu je niekoľko tipov, ako dosiahnuť čo najlepšie výsledky pri používaní dátumov tematických oblastí vo výpočtoch.

Pridanie dátumu tematickej oblasti do výpočtu

Ak potiahnete dátum z tematickej oblasti priamo do výpočtu a spracujete ho ako reťazec alebo celé číslo, zobrazí sa chyba. Dôvodom je, že hodnota príslušného dátumu je časová značka.

Namiesto toho na interpretáciu dátumu použite jednu z funkcií opísaných v časti Funkcie na extrakciu dátumu.

Môžete mať napríklad tieto dátumy tematických oblastí.
Popis GUID-39C55B3A-A055-45D3-9904-948680247C08-default.png je uvedený nižšie
.png

Ak chcete z týchto dátumov tematických oblastí extrahovať mesiace, použite funkciu ExtractMonthOfYear:

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

Funkcie zobrazenia

Funkcie zobrazenia pracujú s množinou výsledkov dopytu.

Funkcia Príklad Popis Syntax

BottomN

BottomN(Sales, 10)

Vrátenie n najnižších hodnôt výrazu, ktoré sú usporiadané od najnižšej po najvyššiu.

BottomN([NumericExpression], [integer])

FILTER

FILTER(Sales USING Product = 'widget')

Vypočíta výraz pomocou určeného predbežne agregovaného filtra.

FILTER(measure USING filter_expr)

MAVG

MAVG(Sales, 10)

Vypočíta kĺzavý priemer (strednú hodnotu) posledných n riadkov dát v množine výsledkov vrátane aktuálneho riadka.

MAVG([NumericExpression], [integer])

MSUM

SELECT Month, Revenue, MSUM(Revenue, 3) as 3_MO_SUM FROM Sales

Vypočíta kĺzavý súčet posledných n riadkov dát vrátane aktuálneho riadka.

Súčet za prvý riadok sa rovná numerickému výrazu pre prvý riadok. Súčet za druhý riadok sa vypočíta ako súčet prvých dvoch riadkov dát atď. Po dosiahnutí n-tého riadka sa súčet vypočíta na základe posledných n riadkov dát.

MSUM([NumericExpression], [integer])

NTILE

NTILE(Sales, 100)

Určí poradie hodnoty vyjadrené rozsahom, ktorý zadal používateľ. Vráti celé čísla predstavujúce ľubovoľný rozsah poradí. Príklad zobrazuje rozsah od 1 do 100 s najnižšou hodnotou predaja = 1 a najvyššou hodnotou predaja = 100.

NTILE([NumericExpresssion], [integer])

PERCENTILE

PERCENTILE(Sales)

Vypočíta percentuálne poradie pre každú hodnotu, ktorá zodpovedá argumentu numerického výrazu. Rozsahy percentilového poradia sú od 0 (prvý percentil) do 100 (stý percentil) vrátane.

PERCENTILE([NumericExpression])

RANK

RANK(Sales)

Vypočíta poradie pre každú hodnotu, ktorá zodpovedá argumentu numerického výrazu. Najvyššiemu číslu sa priradí miesto 1 a každé za ním nasledujúce miesto v poradí sa priradí k nasledujúcemu celému číslu (2, 3, 4...). Ak sú niektoré hodnoty rovnaké, priradí sa im rovnaké miesto v poradí (napríklad 1, 1, 1, 4, 5, 5, 7...).

RANK([NumericExpression])

RCOUNT

SELECT month, profit, RCOUNT(profit) FROM sales WHERE profit > 200

Vstupom je množina záznamov, pre ktorú vypočíta počet doteraz spracovaných záznamov.

RCOUNT([NumericExpression])

RMAX

SELECT month, profit, RMAX(profit) FROM sales

Vstupom je množina záznamov, pre ktorú vypočíta maximálnu hodnotu na základe doteraz spracovaných záznamov. Zadaný dátový typ musí taký, ktorý je možné zoradiť.

RMAX([NumericExpression])

RMIN

SELECT month, profit, RMIN(profit) FROM sales

Vstupom je množina záznamov, pre ktorú vypočíta minimálnu hodnotu na základe doteraz spracovaných záznamov. Zadaný dátový typ musí taký, ktorý je možné zoradiť.

RMIN([NumericExpression])

RSUM

SELECT month, revenue, RSUM(revenue) as RUNNING_SUM FROM sales

Vypočíta priebežný súčet na základe doteraz spracovaných záznamov.

Súčet za prvý riadok sa rovná numerickému výrazu pre prvý riadok. Súčet za druhý riadok sa vypočíta ako súčet prvých dvoch riadkov dát atď.

RSUM([NumericExpression])

TOPN

TOPN(Sales, 10)

Vráti n najvyšších hodnôt výrazu usporiadaných od najvyššej po najnižšiu.

TOPN([NumericExpression], [integer])

Tipy na používanie funkcií zobrazenia

  • FILTER - ak zostavu vytvárate pomocou tematickej oblasti, namiesto filtrovania stĺpcov hierarchie priamo vo výpočte použite hierarchie definované v tematickej oblasti. Inak povedané, ak má tematická oblasť hierarchiu pre čas\fiškálny rok\fiškálny štvrťrok, potom nepoužívajte:

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

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

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

Funkcie vyhodnotenia

Funkcie vyhodnotenia sú databázové funkcie, ktoré možno použiť na výrazy a získať tak rozšírené výpočty.

Vložené databázové funkcie môžu vyžadovať jeden alebo viaceré stĺpce. Na tieto stĺpce sa v rámci funkcie odkazuje položkami %1 ... %N. Skutočné stĺpce sa musia uvádzať za funkciou.

Funkcia Príklad Popis Syntax

EVALUATE

SELECT EVALUATE('instr(%1, %2)', address, 'Foster City') FROM employees

Poskytne zadanú databázovú funkciu, a voliteľne aj odkazované stĺpce, ako parametre pre databázu na vyhodnotenie.

EVALUATE([string expression], [comma separated expressions])

EVALUATE_AGGR

EVALUATE_AGGR('REGR_SLOPE(%1, %2)', sales.quantity, market.marketkey)

Poskytne zadanú databázovú funkciu, a voliteľne aj odkazované stĺpce, ako parametre pre databázu na vyhodnotenie. Táto funkcia je určená pre funkcie agregácie s klauzulou GROUP BY.

EVALUATE_AGGR('db_agg_function(%1...%N)' [AS datatype] [, column1, columnN])

Matematické funkcie

Matematické funkcie popísané v tejto sekcii vykonávajú matematické operácie.

Funkcia Príklad Popis Syntax

ABS

ABS(Profit)

Vypočíta absolútnu hodnotu číselného výrazu.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na numerickú hodnotu.

ABS(expr)

ACOS

ACOS(1)

Vypočíta arkus kosínus číselného výrazu.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na numerickú hodnotu.

ACOS(expr)

ASIN

ASIN(1)

Vypočíta arkus sínus číselného výrazu.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na numerickú hodnotu.

ASIN(expr)

ATAN

ATAN(1)

Vypočíta arkus tangens číselného výrazu.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na numerickú hodnotu.

ATAN(expr)

ATAN2

ATAN2(1, 2)

Vypočíta arkustangens výrazu y /x, kde y je prvý číselný výraz a x je druhý číselný výraz.

ATAN2(expr1, expr2)

CEILING

CEILING(Profit)

Zaokrúhli neceločíselný výraz nahor na najbližšie celé číslo. Ak sa číselný výraz vyhodnotí ako celé číslo, funkcia CEILING vráti toto celé číslo.

CEILING(expr)

COS

COS(1)

Vypočíta kosínus číselného výrazu.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na numerickú hodnotu.

COS(expr)

COT

COT(1)

Vypočíta kotangens číselného výrazu.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na numerickú hodnotu.

COT(expr)

DEGREES

DEGREES(1)

Skonvertuje výraz vyjadrený v radiánoch na stupne.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na numerickú hodnotu.

DEGREES(expr)

EXP

EXP(4)

Umocní hodnotu zadaným exponentom. Vypočíta hodnotu e umocnenú na n-tú, kde e predstavuje základ pre prirodzený logaritmus.

EXP(expr)

ExtractBit

Int ExtractBit(1, 5)

Vyhľadá bit na konkrétnej pozícii v rámci celého čísla. Vráti celé číslo 0 alebo 1 zodpovedajúce pozícii bitu.

sExtractBit([Source Number], [Digits])

FLOOR

FLOOR(Profit)

Zaokrúhli neceločíselný výraz nadol na najbližšie celé číslo. Ak sa číselný výraz vyhodnotí ako celé číslo, funkcia FLOOR vráti toto celé číslo.

FLOOR(expr)

LOG

LOG(1)

Vypočíta prirodzený logaritmus výrazu.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na numerickú hodnotu.

LOG(expr)

LOG10

LOG10(1)

Vypočíta logaritmus výrazu so základom 10.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na numerickú hodnotu.

LOG10(expr)

MOD

MOD(10, 3)

Vydelí prvý číselný výraz druhým číselným výrazom a vráti zvyšok po delení.

MOD(expr1, expr2)

PI

PI()

Vráti hodnotu konštanty pí.

PI()

POWER

POWER(Profit, 2)

Umocní prvý číselný výraz exponentom zadaným v druhom číselnom výraze.

POWER(expr1, expr2)

RADIANS

RADIANS(30)

Skonvertuje výraz vyjadrený v stupňoch na radiány.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na numerickú hodnotu.

RADIANS(expr)

RAND

RAND()

Vráti pseudonáhodné číslo v rozsahu od 0 do 1.

RAND()

RANDFromSeed

RAND(2)

Vráti pseudonáhodné číslo na základe počiatočnej hodnoty. Pre danú počiatočnú hodnotu sa generuje rovnaká množina náhodných čísel.

RAND(expr)

ROUND

ROUND(2.166000, 2)

Zaokrúhli číselný výraz s presnosťou na n číslic.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na numerickú hodnotu.

integer je ľubovoľné kladné celé číslo predstavujúce počet číslic presnosti.

ROUND(expr, integer)

SIGN

SIGN(Profit)

Vráti nasledujúce hodnoty:

  • 1, ak sa číselný výraz vyhodnotí ako kladné číslo.

  • -1, ak sa číselný výraz vyhodnotí ako záporné číslo.

  • 0, ak sa číselný výraz vyhodnotí ako nula.

SIGN(expr)

SIN

SIN(1)

Vypočíta sínus číselného výrazu.

SIN(expr)

SQRT

SQRT(7)

Vypočíta druhú odmocninu z argumentu číselného výrazu. Číselný výraz sa musí vyhodnotiť ako nezáporné číslo.

SQRT(expr)

TAN

TAN(1)

Vypočíta tangens číselného výrazu.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na numerickú hodnotu.

TAN(expr)

TRUNCATE

TRUNCATE(45.12345, 2)

Vráti desatinné číslo skrátené na zadaný počet desatinných miest.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na numerickú hodnotu.

integer je ľubovoľné kladné celé číslo predstavujúce počet znakov napravo od desatinnej čiarky, ktorý sa má vrátiť.

TRUNCATE(expr, integer)

Priebežné agregačné funkcie

Spustením agregačných funkcií sa vykonávajú operácie s viacerými hodnotami za účelom vytvorenia súhrnných výsledkov.

Funkcia Príklad Popis Syntax

MAVG

 

Vypočíta kĺzavý priemer (strednú hodnotu) posledných n riadkov dát v množine výsledkov vrátane aktuálneho riadka.

expr je ľubovoľný výraz, ktorý sa vyhodnotí ako numerická hodnota. integer je ľubovoľné kladné celé číslo. Predstavuje priemer posledných n riadkov dát.

MAVG(expr, integer)

MSUM

select month, revenue, MSUM(revenue, 3) as 3_MO_SUM from sales_subject_area

Vypočíta kĺzavý súčet posledných n riadkov dát vrátane aktuálneho riadka.

expr je ľubovoľný výraz, ktorý sa vyhodnotí ako numerická hodnota. integer je ľubovoľné kladné celé číslo. Predstavuje súčet posledných n riadkov dát.

MSUM(expr, integer)

RSUM

SELECT month, revenue, RSUM(revenue) as RUNNING_SUM from sales_subject_area

Vypočíta priebežný súčet na základe doteraz spracovaných záznamov.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na numerickú hodnotu.

RSUM(expr)

RCOUNT

select month, profit, RCOUNT(profit) from sales_subject_area where profit > 200

Vstupom je množina záznamov, pre ktorú vypočíta počet doteraz spracovaných záznamov.

expr je výraz ľubovoľného dátového typu.

RCOUNT(expr)

RMAX

SELECT month, profit,RMAX(profit) from sales_subject_area

Vstupom je množina záznamov, pre ktorú vypočíta maximálnu hodnotu na základe doteraz spracovaných záznamov.

expr je výraz ľubovoľného dátového typu.

RMAX(expr)

RMIN

select month, profit,RMIN(profit) from sales_subject_area

Vstupom je množina záznamov, pre ktorú vypočíta minimálnu hodnotu na základe doteraz spracovaných záznamov.

expr je výraz ľubovoľného dátového typu.

RMIN(expr)

Priestorové funkcie

Priestorové funkcie vám umožňujú vykonávať geografickú analýzu, keď modelujete dáta. Môžete napríklad vypočítať vzdialenosť medzi dvoma geografickými oblasťami (známymi ako tvary alebo mnohouholníky).

Poznámka:

Tieto priestorové funkcie nemôžete používať vo vlastných výpočtoch pre zošity vizualizácií.
Funkcia Príklad Popis Syntax
GeometryArea

GeometryArea(Shape)

Vypočíta plochu, ktorú tvar zaberá.

GeometryArea(Shape)

GeometryDistance

GeometryDistance(TRIP_START, TRIP_END)

Vypočíta vzdialenosť medzi dvoma tvarmi.

GeometryDistance(Shape 1, Shape 2)

GeometryLength

GeometryLength(Shape)

Vypočíta obvod tvaru.

GeometryLength(Shape)

GeometryRelate

GeometryRelate(TRIP_START, TRIP_END)

Zisťuje, či sa tvar nachádza vnútri iného tvaru. Vráti hodnotu TRUE alebo FALSE ako reťazec (varchar).

GeometryRelate(Shape 1, Shape 2)

GeometryWithinDistance

GeometryWithinDistance(TRIP_START, TRIP_END, 500)

Zisťuje, či sa dva tvary nachádzajú v rámci zadanej vzdialenosti od seba. Vráti hodnotu TRUE alebo FALSE ako reťazec (varchar).

GeometryWithinDistance(Shape1, Shape2, DistanceInFloat)

Reťazcové funkcie

Reťazcové funkcie vykonávajú rôzne operácie znakov. Pracujú so znakovými reťazcami.

Funkcia Príklad Popis Syntax

ASCII

ASCII('a')

Skonvertuje jednoznakový reťazec na zodpovedajúci kód ASCII v rozsahu od 0 do 255. Ak sa znakový výraz vyhodnotí ako viacznakový, vráti sa kód ASCII zodpovedajúci prvému znaku vo výraze.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec.

ASCII(expr)

BIT_LENGTH

BIT_LENGTH('abcdef')

Vráti dĺžku zadaného reťazca v bitoch. Každý znak Unicode má dĺžku 2 bajty (čo zodpovedá 16 bitom).

expr je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec.

BIT_LENGTH(expr)

CHAR

CHAR(35)

Skonvertuje numerickú hodnotu v rozsahu od 0 do 255 na znakovú hodnotu zodpovedajúcu kódu ASCII.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na numerickú hodnotu medzi 0 a 255.

CHAR(expr)

CHAR_LENGTH

CHAR_LENGTH(Customer_Name)

Vráti dĺžku zadaného reťazca, ktorá je vyjadrená počtom znakov. Úvodné a koncové znaky sa nerátajú do dĺžky reťazca.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec.

CHAR_LENGTH(expr)

CONCAT

SELECT DISTINCT CONCAT ('abc', 'def') FROM employee

Zreťazí dva znakové reťazce.

exprs sú výrazy, ktoré sa vyhodnotia na znakové reťazce oddelené čiarkami.

S funkciou CONCAT je potrebné použiť prvotné dáta, nie formátované dáta.

CONCAT(expr1, expr2)

INSERT

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

Vloží zadaný znakový reťazec na zadané umiestnenie v inom znakovom reťazci.

expr1 je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec. Identifikuje cieľový znakový reťazec.

integer1 je ľubovoľné kladné celé číslo predstavujúce počet znakov od začiatku cieľového reťazca, kam sa má vložiť druhý reťazec.

integer2 je ľubovoľné kladné celé číslo predstavujúce počet znakov v cieľovom reťazci, ktoré sa majú nahradiť druhým reťazcom.

expr2 je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec. Identifikuje znakový reťazec, ktorý sa má vložiť do cieľového reťazca.

INSERT(expr1, integer1, integer2, expr2)

LEFT

SELECT LEFT('123456', 3) FROM table

Vráti zadaný počet znakov z ľavej strany reťazca.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec.

integer je ľubovoľné kladné celé číslo predstavujúce počet znakov z ľavej strany reťazca, ktoré sa majú vrátiť.

LEFT(expr, integer)

LENGTH

LENGTH(Customer_Name)

Vráti dĺžku zadaného reťazca, ktorá je vyjadrená počtom znakov. Vrátená dĺžka nezahŕňa prázdne koncové znaky.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec.

LENGTH(expr)

LOCATE

LOCATE('d' 'abcdef')

Vráti numerickú pozíciu znakového reťazca v inom znakovom reťazci. Ak sa v prehľadávanom reťazci znakový reťazec nenachádza, funkcia vráti hodnotu 0.

expr1 je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec. Identifikuje reťazec, ktorý sa má vyhľadať.

expr2 je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec.

Identifikuje reťazec, ktorý sa má prehľadať.

LOCATE(expr1, expr2)

LOCATEN

LOCATEN('d' 'abcdef', 3)

Podobne ako funkcia LOCATE, vracia numerickú pozíciu znakového reťazca v inom znakovom reťazci. LOCATEN obsahuje celočíselný argument, ktorý vám umožňuje určiť počiatočnú pozíciu na začatie vyhľadávania.

expr1 je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec. Identifikuje reťazec, ktorý sa má vyhľadať.

expr2 je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec. Identifikuje reťazec, ktorý sa má prehľadať.

integer je ľubovoľné kladné (nenulové) celé číslo predstavujúce počiatočnú pozíciu na hľadanie znakového reťazca.

LOCATEN(expr1, expr2, integer)

LOWER

LOWER(Customer_Name)

Skonvertuje znakový reťazec na malé písmená.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec.

LOWER(expr)

OCTET_LENGTH

OCTET_LENGTH('abcdef')

Vráti počet bajtov zadaného reťazca.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec.

OCTET_LENGTH(expr)

POSITION

POSITION('d', 'abcdef')

Vráti numerickú pozíciu reťazca strExpr1 v znakovom výraze. Ak sa reťazec strExpr1 nenájde, funkcia vráti hodnotu 0.

expr1 je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec. Identifikuje reťazec, ktorý sa má vyhľadať v cieľovom reťazci. Napríklad „d“.

expr2 je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec. Identifikuje cieľový reťazec, ktorý sa má prehľadávať. Napríklad „abcdef“.

POSITION(expr1, expr2)

REPEAT

REPEAT('abc', 4)

Opakuje zadaný výraz n-krát.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec.

integer je ľubovoľné kladné celé číslo predstavujúce počet opakovaní znakového reťazca.

REPEAT(expr, integer)

REPLACE

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

Nahradí jeden alebo viac znakov zo zadaného znakového výrazu jedným alebo viacerými inými znakmi.

expr1 je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec. Toto je reťazec, v ktorom sa majú nahradiť znaky.

expr2 je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec. Tento druhý reťazec identifikuje znaky z prvého reťazca, ktoré sa majú nahradiť.

expr3 je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec. Tento tretí reťazec určuje znaky, ktoré sa majú nahradiť v prvom reťazci.

REPLACE(expr1, expr2, expr3)

RIGHT

SELECT RIGHT('123456', 3) FROM table

Vráti zadaný počet znakov z pravej strany reťazca.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec.

integer je ľubovoľné kladné celé číslo predstavujúce počet znakov z pravej strany reťazca, ktoré sa majú vrátiť.

RIGHT(expr, integer)

SPACE

SPACE(2)

Vloží prázdne medzery.

integer je ľubovoľné kladné celé číslo určujúce počet medzier, ktoré sa majú vložiť.

SPACE(expr)

SUBSTRING

SUBSTRING('abcdef' FROM 2)

Vytvorí nový reťazec začínajúci od pevného počtu znakov v pôvodnom reťazci.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec.

startPos je ľubovoľné kladné celé číslo predstavujúce počet znakov od začiatku ľavej strany reťazca, kde sa má začať výsledok.

SUBSTRING([SourceString] FROM [StartPostition])

SUBSTRINGN

SUBSTRING('abcdef' FROM 2 FOR 3)

Podobne ako funkcia SUBSTRING, vytvorí nový reťazec začínajúci od pevného počtu znakov v pôvodnom reťazci.

SUBSTRINGN obsahuje celočíselný argument, ktorý vám umožňuje určiť dĺžku nového reťazca v počte znakov.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec.

startPos je ľubovoľné kladné celé číslo predstavujúce počet znakov od začiatku ľavej strany reťazca, kde sa má začať výsledok.

SUBSTRING(expr FROM startPos FOR length)

TrimBoth

Trim(BOTH '_' FROM '_abcdef_')

Odstráni zadané úvodné a koncové znaky zo znakového reťazca.

char je jeden ľubovoľný znak. Ak túto špecifikáciu vynecháte (spolu s požadovanými jednoduchými úvodzovkami), predvolene sa použije prázdny znak.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec.

TRIM(BOTH char FROM expr)

TRIMLEADING

TRIM(LEADING '_' FROM '_abcdef')

Odstráni zadané úvodné znaky zo znakového reťazca.

char je jeden ľubovoľný znak. Ak túto špecifikáciu vynecháte (spolu s požadovanými jednoduchými úvodzovkami), predvolene sa použije prázdny znak.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec.

TRIM(LEADING char FROM expr)

TRIMTRAILING

TRIM(TRAILING '_' FROM 'abcdef_')

Odstráni zadané koncové znaky zo znakového reťazca.

char je jeden ľubovoľný znak. Ak túto špecifikáciu vynecháte (spolu s požadovanými jednoduchými úvodzovkami), predvolene sa použije prázdny znak.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec.

TRIM(TRAILING char FROM expr)

UPPER

UPPER(Customer_Name)

Skonvertuje znakový reťazec na veľké písmená.

expr je ľubovoľný výraz, ktorý sa vyhodnotí na znakový reťazec.

UPPER(expr)

Tipy na používanie funkcie LISTAGG vo funkciách reťazca

Tu je niekoľko tipov na používanie funkcie LISTAGG na dosiahnutie najlepších výsledkov pri spracovaní reťazcov v zošitoch. Môžete napríklad vytvoriť reťazec obsahujúci všetky mestá v dátovom stĺpci.

Zreťazenie viacerých hodnôt:

Na zreťazenie viacerých reťazcových hodnôt do jednej bunky a jedného riadka použite funkciu LISTAGG.

LISTAGG([DISTINCT] <column to concatenate> BY <grouping column>) ON OVERFLOW TRUNCATE
  • DISTINCT - ak hodnoty nie sú jednoznačné, použite tento argument na odobratie duplicitných hodnôt.
  • ON OVERFLOW TRUNCATE - ak výsledok presahuje maximálnu povolenú dĺžku, použite tento argument na skrátenie vráteného reťazca.
Vzorové dáta
Number City State
12     New York    New York
14     New York    New York
30     Boston      Massachusetts
18     Salem    Massachusetts
12     Buffalo     New York
10     Buffalo     New York
20     Albany      New York

Príklady príkazov a výstupu

LISTAGG(City, ', ') poskytne výstup "New York, New York, Boston, Salem, Buffalo, Buffalo, Albany"

LISTAGG(DISTINCT City, ', ') poskytne výstup "New York, Boston, Salem, Buffalo, Albany"

LISTAGG(City, ', ' ON OVERFLOW TRUNCATE '...') poskytne výstup "New York, New York, Boston, Salem, Buffalo, ..."

Systémové funkcie

Systémová funkcia USER vráti hodnoty týkajúce sa relácie. Napríklad meno používateľa, pod ktorým ste sa prihlásili.

Funkcia Príklad Popis Syntax

DATABASE

 

Vráti názov tematickej oblasti, do ktorej ste sa prihlásili.

DATABASE()

USER

 

Vráti meno používateľa pre sémantický model, do ktorého ste sa prihlásili.

USER()

Funkcie časovej série

Funkcie časovej série vám umožňujú agregovať a prognózovať dáta na základe dimenzií času. Napríklad pomocou funkcie AGO môžete vypočítať výnosy pred rokom.

Členy dimenzie času musia byť na úrovni funkcie alebo na nižšej úrovni. Preto je nutné v dopyte naprojektovať jeden alebo viaceré stĺpce, ktoré jedinečne identifikujú členy na danej úrovni alebo pod ňou.

Funkcia Príklad Popis Syntax

AGO

SELECT Year_ID, AGO(sales, year, 1)

Vypočíta agregovanú hodnotu miery v zadanom časovom období v minulosti. Ak napríklad chcete vypočítať mesačné výnosy pred rokom, použite výraz AGO(Revenue, Year, 1, SHIP_MONTH). Ak chcete vypočítať štvrťročné výnosy za posledný štvrťrok, použite výraz AGO(Revenue, Quarter, 1).

AGO(MEASURE, TIME_LEVEL, OFFSET)

Kde:

  • MEASURE predstavuje mieru na výpočet, napríklad výnosy.
  • TIME_LEVEL predstavuje časový interval, ktorý musí byť rok, štvrťrok, mesiac, týždeň alebo deň.
  • OFFSET predstavuje počet časových intervalov v minulosti, ktoré majú byť zahrnuté do výpočtu, napríklad 1 pre jeden rok.

PERIODROLLING

SELECT Month_ID, PERIODROLLING (monthly_sales, -1, 1)

Vypočíta agregovanú hodnotu miery za obdobie začínajúce sa x jednotkami času a končiace sa y jednotkami času od aktuálneho času. Funkcia PERIODROLLING napríklad môže vypočítať predaj za obdobie začínajúce v predchádzajúcom štvrťroku a končiace v štvrťroku po aktuálnom štvrťroku.

PERIODROLLING(measure, x [,y])

Kde:

  • MEASURE predstavuje názov stĺpca miery.
  • X je celé číslo, ktoré predstavuje posun od aktuálneho času.
  • Y je celé číslo, ktoré predstavuje počet časových jednotiek, ktoré funkcia zahrnie do výpočtu.
  • HIERARCHY je voliteľný argument, ktorý predstavuje názov hierarchie v časovej dimenzii, napríklad YR, MON, DAY, a ktorý sa použije na výpočet časového úseku.

TODATE

SELECT Year_ID, Month_ID, TODATE (sales, year)

Vypočíta agregovanú hodnotu miery od začiatku časového obdobia do posledného časového obdobia, napríklad výpočty od začiatku roka.

Ak napríklad chcete vypočítať predaj od začiatku roka, použite výraz TODATE(sales, year).

TODATE(MEASURE, TIME_LEVEL)

Kde:

  • MEASURE predstavuje výraz, ktorý odkazuje najmenej na jeden stĺpec miery, napríklad predaj.
  • TIME_LEVEL predstavuje časový interval, ktorý musí byť rok, štvrťrok, mesiac, týždeň alebo deň.