Funkcije

U izrazima možete koristiti različite vrste funkcija.

Teme:

Funkcije analitike

Funkcije analitike omogućuju vam da istražite podatke pomoću modela kao što su, predviđanje, linija trenda i klaster. Druga je mogućnost da analitičke funkcije povučete i ispustite u uređivač radne knjige.

Osim toga, možete dodati predviđanja, linije trendova i klastere u radnu knjigu tako da ih odaberete u kartici Analitika podatkovne ploče u uređivaču radne knjige. Pogledajte Dodavanje funkcija statističke analize u vizualizacije.

Funkcija Primjer Opis Sintaksa

CLUSTER

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

Grupira skup zapisa u grupe na temelju jednog ili više ulaznih izraza u kojima se koriste K srednje vrijednosti ili hijerarhijsko grupiranje.

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

FORECAST

Primjer predviđanja prihoda prema danu

U ovom primjeru odabrano je predviđanje prihoda prema danu.

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

Primjer predviđanja prihoda prema godini i tromjesečju

U ovom primjeru odabrano je predviđanje prihoda prema godini i tromjesečju.

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

Stvara model vrijeme-serija sa specifičnom mjerom za serije koje upotrebljavaju eksponencijalno uglađivanje (ETS) ili pak sezonski ARIMA, ARIMA ili Prophet. Ta funkcija prikazuje predviđanje za skup razdoblja koje definira argument numPeriods.

Pogledajte također dodatne opcije funkcije FORECAST u nastavku.

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

Pri čemu je:

  • measure predstavlja mjeru za predviđanje, primjerice, podataka o prihodu.

  • series predstavlja vremensku zrnatost koja služi za izradu modela predviđanja. Serija je popis jednog ili više stupaca s dimenzijom vremena. Ako izostavite seriju, vremenska zrnatost definirat će se prema upitu.

  • output_column_name predstavlja valjane nazive stupaca forecast, low, high i predictionInterval.

  • options predstavlja popis nizova koji predstavljaju parove naziva i vrijednosti, a razdvojeni su točkom-zarez (;). Vrijednost može obuhvaćati %1 ... %N definirano u runtime_binded_options.

  • runtime_binded_options predstavlja zarezima razdvojen popis stupaca i opcija. Vrijednosti tih stupaca i opcija procjenjuju se i razrješavaju tijekom vremena izvođenja pojedinačnih upita.

Pogledajte također dodatne opcije funkcije FORECAST u nastavku.

OUTLIER

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

Klasificira zapis kao vanjski sloj na temelju jednog ili više ulaznih izraza u kojima se upotrebljavaju K srednje vrijednosti ili hijerarhijsko grupiranje ili pak raznovrsni algoritmi za detektiranje vanjskog sloja.

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

REGR

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

Usklađuje linearni model i vraća usklađene vrijednosti ili model. Ta funkcija može se upotrijebiti kako bi se linearna krivulja uskladila s dvije mjere.

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')

Oracle vam preporučuje da primjenjujete Trendline s pomoću svojstva Dodaj statistiku kad pregledavate vizualizaciju. Pogledajte Prilagodba svojstava vizualizacije.

Usklađuje linearni, polinomijalni ili eksponencijalni model i vraća usklađene vrijednosti ili model. numeric_expr predstavlja vrijednost Y trenda, a series (stupci vremena) predstavlja vrijednost X.

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

Opcije za funkciju FORECAST U sljedećoj tablici navedene su dostupne opcije koje se mogu upotrijebiti za funkciju FORECAST.

Naziv opcije Vrijednosti Opis
numPeriods Cijeli broj Broj razdoblja za predviđanje.
predictionInterval Od 0 do 100, pri čemu veće vrijednosti označavaju veću pouzdanost. Razina pouzdanosti predviđanja.
modelType

ETS (Eksponencijalno izglađivanje)

SeasonalArima

ARIMA

Prophet

Model koji će se upotrijebiti za predviđanje.
useBoxCox

TRUE

FALSE

Ako je postavljeno na TRUE, upotrijebite Box-Cox transformaciju.
lambdaValue Nije primjenjivo

Parametar za Box-Cox transformaciju.

Zanemarite ako je NULL ili ako je useBoxCox postavljeno na FALSE.

Podaci će se u suprotnom transformirati prije procjene modela.

trendDamp

TRUE

FALSE

Specifično za model eksponencijalnog izglađivanja.

Ako je postavljeno na TRUE, upotrebljava se ublaženi trend. Ako je postavljeno na FALSE ili NULL, upotrebljava se neublaženi trend.

errorType

Nije primjenjivo

Specifično za model eksponencijalnog izglađivanja.
trendType

N (ništa)

A (dodavanje)

M (množenje)

Z (automatski odabir)

Specifično za model eksponencijalnog izglađivanja
seasonType

N (ništa)

A (dodavanje)

M (množenje)

Z (automatski odabir)

Specifično za model eksponencijalnog izglađivanja
modelParamIC

ic_auto

ic_aicc

ic_bic

ic_auto (ovo je zadana vrijednost)

Informacijski kriterij (IC) koji se upotrebljava u odabiru modela.

Funkcije konverzije

Funkcije konverzije preračunavaju vrijednost iz jednog oblika u drugi.

Funkcija Primjer Opis Sintaksa

CAST

CAST(hiredate AS CHAR(40)) FROM employee

Vrstu podataka izraza ili literalnu null vrijednost pretvara u drugu vrstu podataka. Možete, na primjer, pretvoriti customer_name (vrsta podataka CHAR ili VARCHAR) ili birthdate (datumsko-vremenska literalna vrijednost).

Upotrijebite CAST kako biste vrstu podataka promijenili na Date.

Nemojte upotrijebiti TODATE.

CAST(expr AS type)

IFNULL

IFNULL(Sales, 0)

Testira iznosi li vrijednost izraza null; u tom slučaju dodjeljuje izrazu navedenu vrijednost.

IFNULL(expr, value)

INDEXCOL

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

Koristi vanjske informacije kako bi se vratio odgovarajući stupac koji će pregledati prijavljeni korisnik.

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";

Uspoređuje dva izraza. Ako su jednaki, funkcija će vratiti NULL. Ako nisu jednaki, funkcija će vratiti prvi izraz. Za prvi izraz ne možete definirati literalnu vrijednost NULL.

NULLIF([expression], [expression])

To_DateTime

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

Nizovne literale u formatu DateTime pretvara u vrstu podataka DateTime.

To_DateTime([expression], [literal])

VALUEOF

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

Navodi referencu vrijednosti varijable semantičkog modela unutar filtra.

Upotrijebite varijable expr kao argumente funkcije VALUEOF. Statičke varijable semantičkog modela pozivajte prema nazivu.

VALUEOF(expr)

Funkcije za izdvajanje datuma

Ovim funkcijama izračunavaju se vrijednosti vremenske oznake ili se zaokružuju na najbliže definirano vremensko razdoblje, primjerice sat, dan, tjedan, mjesec i tromjesečje.

Izračunate vremenske oznake možete upotrijebiti za agregiranje podataka s pomoću različitih zrnatosti. Možete, na primjer, primijeniti funkciju EXTRACTDAY() na datume naloga za prodaju kako biste izračunali vremensku oznaku za ponoć datuma narudžbe kako biste zatim podatke mogli agregirati po danu.

Funkcija Primjer Opis Sintaksa

Izdvoji dan

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

Vraća vremensku oznaku ponoći (12 AM) na dan u kojem je došlo do ulazne vrijednosti. Ako je, na primjer, ulazna vremenska oznaka 3:02:01 AM 22. veljače, funkcija će vratiti vremensku oznaku za 12:00:00 AM 22. veljače.

EXTRACTDAY(expr)

Izdvoji sat

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

Vraća vremensku oznaku početka sata u kojem je došlo do ulazne vrijednosti. Ako je, na primjer, ulazna vremenska oznaka za 11:18:30 PM, funkcija će vratiti vremensku oznaku za 11:00:00 PM.

EXTRACTHOUR (expr)

Izdvoji sat u danu

EXTRACTHOUROFDAY("Order Date")
  • 2014/09/24 10:58:00 vraća 2000/01/01 10:00:00.
  • 2014/08/13 11:10:00 vraća 2000/01/01 11:00:00

Vraća vremensku oznaku u kojoj je sat jednak satu ulazne vrijednosti sa zadanim vrijednostima za godinu, mjesec, dan, minute i sekunde.

EXTRACTHOUROFDAY(expr)

Izdvoji milisekunde

EXTRACTMILLISECOND("Order Date")
  • 1997/01/07 15:32:02.150 vraća 1997/01/07 15:32:02.150.
  • 1997/01/07 18:42:01.265 vraća 1997/01/07 18:42:01.265.
Vraća vremensku oznaku koja sadrži milisekunde za ulaznu vrijednost. Ako je, na primjer, ulazna vremenska oznaka za 15:32:02.150, funkcija će vratiti vremensku oznaku za 15:32:02.150.

EXTRACTMILLISECOND(expr)

Izdvoji minute

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

Vraća vremensku oznaku za početak minute u kojoj je došlo do ulazne vrijednosti. Ako je, na primjer, ulazna vremenska oznaka za 11:38:21 AM, funkcija će vratiti vremensku oznaku za 11:38:00 AM.

EXTRACTMINUTE (expr)

Izdvoji mjesec

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

Vraća vremensku oznaku za prvi dan u mjesecu u kojem je došlo do ulazne vrijednosti. Na primjer, ako je ulazna vremenska oznaka za 22. veljače, funkcija će vratiti vremensku oznaku za 1. veljače.

EXTRACTMONTH(expr)

Izdvoji tromjesečje

EXTRACTQUARTER("Order Date")
  • 2/22/1967 3:02:01 AM vraća 1/1/1967 12:00:00 AM, prvi dan prvog fiskalnog tromjesečja.
  • 6/17/1999 11:18:00 PM vraća 4/1/1999 12:00:00 AM, prvi dan drugog fiskalnog tromjesečja.

  • 9/2/2022 10:38:21 AM vraća 7/1/2022 12:00:00 AM, prvi dan trećeg fiskalnog tromjesečja.

    Savjet: Upotrijebite QUARTER (expr) kako biste iz vraćene vremenske oznake izračunali samo redni broj tromjesečja.

Vraća vremensku oznaku za prvi dan u tromjesečju u kojem je došlo do ulazne vrijednosti. Ako je, na primjer, do ulazne vremenske oznake došlo u trećem fiskalnom tromjesečju, funkcija će vratiti vremensku oznaku za 1. srpnja.

EXTRACTQUARTER(expr)

Izdvoji sekunde

EXTRACTSECOND("Order Date")
  • 1997/01/07 15:32:02.150 vraća 1997/01/07 15:32:02.
  • 1997/01/07 20:44:18.163 vraća 1997/01/07 20:44:18.

Vraća vremensku oznaku za ulaznu vrijednost. Ako je, na primjer, ulazna vremenska oznaka za 15:32:02.150, funkcija će vratiti vremensku oznaku za 15:32:02.

EXTRACTSECOND(expr)

Izdvoji tjedan

EXTRACTWEEK("Order Date")
  • 2014/09/24 10:58:00 vraća 2014/09/21.

  • 2014/08/13 11:10:00 vraća 2014/08/10.

Vraća datum prvog dana u tjednu (nedjelja) u kojem je došlo do ulazne vrijednosti. Na primjer, ako je ulazna vremenska oznaka za srijedu, 24. rujna, funkcija će vratiti vremensku oznaku za nedjelju, 21. rujna.

Napomena: Ako prvi dan u tjednu (tj. nedjelja) pada u prethodnu godinu i stoga bi negativno utjecao na sabiranje, funkcija vraća sedmi dan u tjednu (tj. subotu) u tekuću godinu umjesto prvog dana u tjednu u prethodnoj godini. Na primjer, 1/1/24, 1/2/24, i 1/3/24 svi su sabrani na subotu 1/6/24, a ne nedjelju 12/29/23.

EXTRACTWEEK(expr)

Izdvoji godinu

EXTRACTYEAR("Order Date")
  • 1967/02/22 03:02:01 vraća 1967/01/01 00:00:00.
  • 1999/06/17 23:18:00 vraća 1999/01/01 00:00:00.

Vraća vremensku oznaku za 1. siječnja za onu godinu u kojoj je došlo do ulazne vrijednosti. Ako je, na primjer, do ulazne vrijednosti došlo 1967., funkcija će vratiti vremensku oznaku za 1. siječnja 1967.

EXTRACTYEAR (expr)

Savjeti za upotrebu dimenzija datuma u predmetnim područjima

Donosimo savjete po pitanju toga kako osigurati najbolje rezultate ako upotrebljavate datume predmetnog područja u izračunima.

Dodavanje predmetnog područja izračunu

Ako povučete datum iz predmetnog područja izravno u izračun i obradite ga kao niz ili cijeli broj, dobit ćete pogrešku. To se događa jer je temeljna vrijednost datuma vremenska oznaka.

Umjesto toga, upotrijebite jedan od Funkcije za izdvajanje datuma za tumačenje datuma.

Na primjer, mogli biste imati ove datume predmetnog područja.
Slijedi opis za GUID-39C55B3A-A055-45D3-9904-948680247C08-default.png
.png

Za izdvajanje mjeseci iz ovih datuma predmetnog područja upotrijebite funkciju ExtractMonthOfYear:

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

Funkcije prikaza

Funkcije prikaza izvršavaju se na skupu rezultata upita.

Funkcija Primjer Opis Sintaksa

BottomN

BottomN(Sales, 10)

Vraća n najnižih vrijednosti izraza, rangiranih od najniže do najviše.

BottomN([NumericExpression], [integer])

FILTER

FILTER(Sales USING Product = 'widget')

Izračunava izraz pomoću danog filtra za pripremno sabiranje.

FILTER(measure USING filter_expr)

MAVG

MAVG(Sales, 10)

Izračunava pomični prosjek (srednju vrijednost) za zadnjih n redaka podataka u skupu rezultata, uključujući trenutačni redak.

MAVG([NumericExpression], [integer])

MSUM

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

Izračunava pomični zbroj zadnjih n redaka podataka, uključujući trenutačni redak.

Zbroj za prvi redak jednak je brojčanoj vrijednosti za prvi redak. Zbroj za drugi redak izračunava se tako da se uzme zbroj prva dva retka podataka itd. Kad se dođe do n-tog retka, zbroj se izračunava na temelju zadnjih n redaka podataka.

MSUM([NumericExpression], [integer])

NTILE

NTILE(Sales, 100)

Određuje položaj vrijednosti s obzirom na korisnički određeni raspon. Vraća cijele brojeve kojima predstavlja određeni raspon položaja. U primjeru je prikazan raspon od 1 do 100, pri čemu je najmanja prodaja = 1, a najveća prodaja = 100.

NTILE([NumericExpresssion], [integer])

PERCENTILE

PERCENTILE(Sales)

Izračunava percentilni rang svake vrijednosti koja zadovoljava argument numeričkog izraza. Raspon percentilnog ranga kreće se od 1 (1. percentil) do 1 (100. percentil), uključujući te dvije vrijednosti.

PERCENTILE([NumericExpression])

RANK

RANK(Sales)

Izračunava položaj svake vrijednosti koja zadovoljava argument brojčanog izraza. Najvećem broju dodjeljuje se položaj 1, a ostalim cijelim brojevima se dalje dodaju položaji po redu (2, 3, 4,...). U slučaju pojavljivanja istih vrijednosti, dodaje im se isti položaj (npr., 1, 1, 1, 4, 5, 5, 7...).

RANK([NumericExpression])

RCOUNT

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

Kao ulazne podatke uzima skup zapisa i izračunava broj zapisa koji su dosad obrađeni.

RCOUNT([NumericExpression])

RMAX

SELECT month, profit, RMAX(profit) FROM sales

Kao ulazne podatke uzima skup zapisa i prikazuje maksimalnu vrijednost na temelju dosad obrađenih zapisa. Kao vrsta podataka mora se odabrati vrsta koja se može poredati.

RMAX([NumericExpression])

RMIN

SELECT month, profit, RMIN(profit) FROM sales

Kao ulazne podatke uzima skup zapisa i prikazuje minimalnu vrijednost na temelju dosad obrađenih zapisa. Kao vrsta podataka mora se odabrati vrsta koja se može poredati.

RMIN([NumericExpression])

RSUM

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

Izračunava tekući zbroj na temelju dosad obrađenih zapisa.

Zbroj za prvi redak jednak je brojčanoj vrijednosti za prvi redak. Zbroj za drugi redak izračunava se tako da se uzme zbroj prva dva retka podataka itd.

RSUM([NumericExpression])

TOPN

TOPN(Sales, 10)

Vraća n najviših vrijednosti izraza i rangira ih od najviše do najniže.

TOPN([NumericExpression], [integer])

Savjeti pri upotrebi funkcija prikaza

  • FILTER - Ako izrađujete izvješće pomoću predmetnog područja, upotrijebite hijerarhije definirane u predmetnom području umjesto filtriranja hijerarhijskih stupaca izravno u izračunu. Drugim riječima, ako predmetno područje ima hijerarhiju za Vrijeme \ Fiskalnu godinu \ Fiskalni kvartal, izbjegavajte:

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

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

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

Funkcije procjene

Funkcije procjene su funkcije baze podataka koje se mogu koristiti kako bi se proslijedili izrazi i dobili napredni izračuni.

Ugrađene funkcije baze podataka mogu zahtijevati jedan ili više stupaca. Ti stupci navedeni su pomoću %1 ... %N unutar funkcije. Stvarni stupci moraju se navesti nakon funkcije.

Funkcija Primjer Opis Sintaksa

EVALUATE

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

Bazi podataka na procjenu prosljeđuje navedenu funkciju baze podataka s dodatnim navedenim stupcima kao parametrima.

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

EVALUATE_AGGR

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

Bazi podataka na procjenu prosljeđuje navedenu funkciju baze podataka s dodatnim navedenim stupcima kao parametrima. Ova funkcija namijenjena je funkcijama sabiranja s uvjetom GROUP BY.

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

Matematičke funkcije

Matematičke funkcije opisane u ovom odjeljku izvršavaju matematičke operacije.

Funkcija Primjer Opis Sintaksa

ABS

ABS(Profit)

Izračunava apsolutnu vrijednost brojčanog izraza.

expr je bilo koji izraz koji se procjenjuje na brojčanu vrijednost.

ABS(expr)

ACOS

ACOS(1)

Izračunava kosinus luka brojčanog izraza.

expr je bilo koji izraz koji se procjenjuje na brojčanu vrijednost.

ACOS(expr)

ASIN

ASIN(1)

Izračunava sinus luka brojčanog izraza.

expr je bilo koji izraz koji se procjenjuje na brojčanu vrijednost.

ASIN(expr)

ATAN

ATAN(1)

Izračunava tangentu luka brojčanog izraza.

expr je bilo koji izraz koji se procjenjuje na brojčanu vrijednost.

ATAN(expr)

ATAN2

ATAN2(1, 2)

Izračunava tangentu luka vrijednosti y/x gdje je y prvi, a x drugi brojčani izraz.

ATAN2(expr1, expr2)

CEILING

CEILING(Profit)

Zaokružuje numeričke izraze koji nisu cijeli broj na sljedeći najviši cijeli broj. Ako je brojčani izraz cijeli broj, funkcija CEILING vraća taj cijeli broj.

CEILING(expr)

COS

COS(1)

Izračunava kosinus brojčanog izraza.

expr je bilo koji izraz koji se procjenjuje na brojčanu vrijednost.

COS(expr)

COT

COT(1)

Izračunava kotangens brojčanog izraza.

expr je bilo koji izraz koji se procjenjuje na brojčanu vrijednost.

COT(expr)

DEGREES

DEGREES(1)

Pretvara izraz iz radijana u stupnjeve.

expr je bilo koji izraz koji se procjenjuje na brojčanu vrijednost.

DEGREES(expr)

EXP

EXP(4)

Potencira vrijednost navedenim brojem. Izračunava e na n-tu potenciju, pri čemu je e baza prirodnog logaritma.

EXP(expr)

ExtractBit

Int ExtractBit(1, 5)

Učitavanje bita na određenom cjelobrojnom položaju. Vraća cjelobrojnu vrijednost 0 ili 1 koja odgovara položaju bita.

ExtractBit([Source Number], [Digits])

FLOOR

FLOOR(Profit)

Zaokružuje numeričke izraze koji nisu cijeli broj na sljedeći najniži cijeli broj. Ako je brojčani izraz cijeli broj, funkcija FLOOR vraća taj cijeli broj.

FLOOR(expr)

LOG

LOG(1)

Izračunava prirodni logaritam izraza.

expr je bilo koji izraz koji se procjenjuje na brojčanu vrijednost.

LOG(expr)

LOG10

LOG10(1)

Izračunava logaritam s bazom deset za izraz.

expr je bilo koji izraz koji se procjenjuje na brojčanu vrijednost.

LOG10(expr)

MOD

MOD(10, 3)

Dijeli prvi brojčani izraz s drugim brojčanim izrazom i vraća ostatak rezultata dijeljenja.

MOD(expr1, expr2)

PI

PI()

Vraća vrijednost konstante pi.

PI()

POWER

POWER(Profit, 2)

Uzima prvi brojčani izraz i eksponira ga brojem navedenim u drugom brojčanom izrazu.

POWER(expr1, expr2)

RADIANS

RADIANS(30)

Pretvara izraz iz stupnjeva u radijane.

expr je bilo koji izraz koji se procjenjuje na brojčanu vrijednost.

RADIANS(expr)

RAND

RAND()

Vraća nasumičan broj između 0 i 1.

RAND()

RANDFromSeed

RAND(2)

Vraća nasumičan broj s obzirom na sistemsku vrijednost. Za zadanu sistemsku vrijednost generira se isti skup nasumičnih brojeva.

RAND(expr)

ROUND

ROUND(2.166000, 2)

Zaokružuje brojčani izraz s preciznošću od n znamenki.

expr je bilo koji izraz koji se procjenjuje na brojčanu vrijednost.

integer je bilo koji pozitivan cijeli broj koji predstavlja broj znamenki preciznosti.

ROUND(expr, integer)

SIGN

SIGN(Profit)

Vraća sljedeće:

  • 1 ako je brojčani izraz pozitivan broj

  • -1 ako je brojčani izraz negativan broj

  • 0 ako je brojčani izraz nula

SIGN(expr)

SIN

SIN(1)

Izračunava sinus brojčanog izraza.

SIN(expr)

SQRT

SQRT(7)

Izračunava kvadratni korijen argumenta brojčanog izraza. Brojčani izraz ne smije biti negativan broj.

SQRT(expr)

TAN

TAN(1)

Izračunava tangentu brojčanog izraza.

expr je bilo koji izraz koji se procjenjuje na brojčanu vrijednost.

TAN(expr)

TRUNCATE

TRUNCATE(45.12345, 2)

Krati decimalni broj i vraća broj s određenim brojem mjesta od decimalnog zareza.

expr je bilo koji izraz koji se procjenjuje na brojčanu vrijednost.

integer je bilo koji pozitivan cijeli broj koji predstavlja broj znakova od desnog kraja decimalnog mjesta koje treba vratiti.

TRUNCATE(expr, integer)

Funkcije tekućeg sabiranja

Pokretanjem agregatnih funkcija izvršavaju se operacije s višestrukim vrijednostima kako bi stvorile zbirne rezultate.

Funkcija Primjer Opis Sintaksa

MAVG

 

Izračunava pomični prosjek (srednju vrijednost) za zadnjih n redaka podataka u skupu rezultata, uključujući trenutačni redak.

expr je bilo koji izraz koji se procjenjuje kao brojčana vrijednost. integer je bilo koji pozitivan cijeli broj. Predstavlja prosjek zadnjih n redaka podataka.

MAVG(expr, integer)

MSUM

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

Izračunava pomični zbroj zadnjih n redaka podataka, uključujući trenutačni redak.

expr je bilo koji izraz koji se procjenjuje kao brojčana vrijednost. integer je bilo koji pozitivan cijeli broj. Predstavlja zbroj zadnjih n redaka podataka.

MSUM(expr, integer)

RSUM

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

Izračunava tekući zbroj na temelju dosad obrađenih zapisa.

expr je bilo koji izraz koji se procjenjuje na brojčanu vrijednost.

RSUM(expr)

RCOUNT

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

Kao ulazne podatke uzima skup zapisa i izračunava broj zapisa koji su dosad obrađeni.

expr je izraz bilo koje vrste podataka.

RCOUNT(expr)

RMAX

SELECT month, profit,RMAX(profit) from sales_subject_area

Kao ulazne podatke uzima skup zapisa i prikazuje maksimalnu vrijednost na temelju dosad obrađenih zapisa.

expr je izraz bilo koje vrste podataka.

RMAX(expr)

RMIN

select month, profit,RMIN(profit) from sales_subject_area

Kao ulazne podatke uzima skup zapisa i prikazuje minimalnu vrijednost na temelju dosad obrađenih zapisa.

expr je izraz bilo koje vrste podataka.

RMIN(expr)

Prostorne funkcije

Prostorne funkcije omogućavaju vam da izvršite geografsku analizu za podatke vašeg modela. Npr., možete izračunati udaljenost između dva zemljopisna područja (tzv. oblici ili poligoni).

Bilješka:

Ove prostorne funkcije nećete moći upotrijebiti u prilagođenim izračunima za vizualizacijske radne knjige.
Funkcija Primjer Opis Sintaksa
GeometryArea

GeometryArea(Shape)

Izračunava površinu oblika.

GeometryArea(Shape)

GeometryDistance

GeometryDistance(TRIP_START, TRIP_END)

Izračunava udaljenost između dva oblika.

GeometryDistance(Shape 1, Shape 2)

GeometryLength

GeometryLength(Shape)

Izračunava opseg oblika.

GeometryLength(Shape)

GeometryRelate

GeometryRelate(TRIP_START, TRIP_END)

Određuje nalazi li se jedan oblik unutar drugoga. Vraća niz TRUE ili FALSE (varchar).

GeometryRelate(Shape 1, Shape 2)

GeometryWithinDistance

GeometryWithinDistance(TRIP_START, TRIP_END, 500)

Određuje nalaze li se dva oblika unutar definirane udaljenosti jedan od drugoga. Vraća niz TRUE ili FALSE (varchar).

GeometryWithinDistance(Shape1, Shape2, DistanceInFloat)

Funkcije za nizove

Funkcije za nizove manipuliraju znakovima na različite načine. Primjenjuju se na nizove znakova.

Funkcija Primjer Opis Sintaksa

ASCII

ASCII('a')

Pretvara jednostruki znakovni niz u odgovarajući ASCII kod, između 0 i 255. Ako znakovni izraz sadrži više znakova, vratit će se ASCII kod koji odgovara prvom znaku u izrazu.

expr je bilo koji izraz koji se procjenjuje na niz znakova.

ASCII(expr)

BIT_LENGTH

BIT_LENGTH('abcdef')

Vraća duljinu za određeni niz u bitovima. Svaki Unicode znak dug je 2 bajta (što iznosi 16 bitova).

expr je bilo koji izraz koji se procjenjuje na niz znakova.

BIT_LENGTH(expr)

CHAR

CHAR(35)

Pretvara brojčanu vrijednost između 0 i 255 u znakovnu vrijednost usklađenu s ASCII kodom.

expr je bilo koji izraz koji se procjenjuje na brojčanu vrijednost između 0 i 255.

CHAR(expr)

CHAR_LENGTH

CHAR_LENGTH(Customer_Name)

Vraća duljinu određenog niza u broju znakova. Bjeline ispred i iza niza ne uračunavaju se u duljinu niza.

expr je bilo koji izraz koji se procjenjuje na niz znakova.

CHAR_LENGTH(expr)

CONCAT

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

Ulančava dva znakovna niza.

exprs su izrazi koji se procjenjuju na nizove znakova razdvojene zarezima.

Za CONCAT morate upotrijebiti neobrađene podatke, a ne formatirane podatke.

CONCAT(expr1, expr2)

INSERT

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

Umeće određeni znakovni niz u određenu lokaciju u drugi znakovni niz.

expr1 je bilo koji izraz koji se procjenjuje na niz znakova. Definira odredišni niz znakova.

integer1 je bilo koji pozitivan cijeli broj koji predstavlja broj znakova od početka odredišnog niza do mjesta na koje se treba umetnuti drugi niz.

integer2 je bilo koji pozitivan cijeli broj koji predstavlja broj znakova u odredišnom nizu koji će se zamijeniti drugim nizom.

expr2 je bilo koji izraz koji se procjenjuje na niz znakova. Definira niz znakova koji će se umetnuti u odredišni niz.

INSERT(expr1, integer1, integer2, expr2)

LEFT

SELECT LEFT('123456', 3) FROM table

Vraća određeni broj znakova s lijeve strane niza.

expr je bilo koji izraz koji se procjenjuje na niz znakova.

integer je bilo koji pozitivan cijeli broj koji predstavlja broj znakova od lijevog kraja niza koje treba vratiti.

LEFT(expr, integer)

LENGTH

LENGTH(Customer_Name)

Vraća duljinu određenog niza u broju znakova. Duljina se vraća bez završnih praznih znakova.

expr je bilo koji izraz koji se procjenjuje na niz znakova.

LENGTH(expr)

LOCATE

LOCATE('d' 'abcdef')

Vraća brojčani položaj znakovnog niza u drugom znakovnom nizu. Ne pronađe li se znakovni niz u nizu koji se pretražuje, funkcija će vratiti vrijednost 0.

expr1 je bilo koji izraz koji se procjenjuje na niz znakova. Definira niz koji se treba pronaći.

expr2 je bilo koji izraz koji se procjenjuje na niz znakova.

Definira niz za pretraživanje.

LOCATE(expr1, expr2)

LOCATEN

LOCATEN('d' 'abcdef', 3)

Poput funkcije LOCATE, vraća brojčani položaj znakovnog niza u drugom znakovnom nizu. U funkciju LOCATEN uključen je cjelobrojni argument koji vam omogućuje da definirate položaj s kojeg će pretraživanje početi.

expr1 je bilo koji izraz koji se procjenjuje na niz znakova. Definira niz koji se treba pronaći.

expr2 je bilo koji izraz koji se procjenjuje na niz znakova. Definira niz za pretraživanje.

integer je bilo koji pozitivan cijeli broj (ne smije biti nula) koji predstavlja početni položaj na kojem će se početi tražiti niz znakova.

LOCATEN(expr1, expr2, integer)

LOWER

LOWER(Customer_Name)

Pretvara znakovni niz u mala slova.

expr je bilo koji izraz koji se procjenjuje na niz znakova.

LOWER(expr)

OCTET_LENGTH

OCTET_LENGTH('abcdef')

Vraća broj bajtova za definirani niz.

expr je bilo koji izraz koji se procjenjuje na niz znakova.

OCTET_LENGTH(expr)

POSITION

POSITION('d', 'abcdef')

Vraća brojčani položaj za strExpr1 u znakovnom izrazu. Ako se strExpr1 ne pronađe, funkcija će vratiti 0.

expr1 je bilo koji izraz koji se procjenjuje na niz znakova. Definira niz koji će se tražiti u odredišnom nizu. Npr., "d".

expr2 je bilo koji izraz koji se procjenjuje na niz znakova. Definira odredišni niz za pretraživanje. Npr., "abcdef".

POSITION(expr1, expr2)

REPEAT

REPEAT('abc', 4)

Ponavlja određeni izraz n puta.

expr je bilo koji izraz koji se procjenjuje na niz znakova.

integer je bilo koji pozitivan cijeli broj koji definira koliko će se puta ponoviti niz znakova.

REPEAT(expr, integer)

REPLACE

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

Nadomješta jedan ili više znakova iz određenog znakovnog izraza s jednim ili više različitih znakova.

expr1 je bilo koji izraz koji se procjenjuje na niz znakova. To je niz u kojem treba zamijeniti znakove.

expr2 je bilo koji izraz koji se procjenjuje na niz znakova. Ovaj drugi niz definira znakove iz prvog niza koje treba zamijeniti.

expr3 je bilo koji izraz koji se procjenjuje na niz znakova. Ovaj treći niz definira znakove koje treba zamijeniti u prvom nizu.

REPLACE(expr1, expr2, expr3)

RIGHT

SELECT RIGHT('123456', 3) FROM table

Vraća određeni broj znakova s desne strane niza.

expr je bilo koji izraz koji se procjenjuje na niz znakova.

integer je bilo koji pozitivan cijeli broj koji predstavlja broj znakova od desnog kraja niza koje treba vratiti.

RIGHT(expr, integer)

SPACE

SPACE(2)

Umeće bjeline.

integer je bilo koji pozitivan cijeli broj koji označava broj mjesta koja treba umetnuti.

SPACE(expr)

SUBSTRING

SUBSTRING('abcdef' FROM 2)

Stvara novi niz, započinje s fiksnim brojem znakova iz izvornog niza.

expr je bilo koji izraz koji se procjenjuje na niz znakova.

startPos je bilo koji pozitivan cijeli broj koji predstavlja broj znakova od početka lijeve strane niza gdje rezultat treba početi.

SUBSTRING([SourceString] FROM [StartPostition])

SUBSTRINGN

SUBSTRING('abcdef' FROM 2 FOR 3)

Poput funkcije SUBSTRING, stvara novi niz, započinje s fiksnim brojem znakova iz izvornog niza.

SubstringN obuhvaća cjelobrojni argument koji vam omogućuje da definirate duljinu novog niza kao broj znakova.

expr je bilo koji izraz koji se procjenjuje na niz znakova.

startPos je bilo koji pozitivan cijeli broj koji predstavlja broj znakova od početka lijeve strane niza gdje rezultat treba početi.

SUBSTRING(expr FROM startPos FOR length)

TrimBoth

Trim(BOTH '_' FROM '_abcdef_')

Uklanja određene vodeće i završne znakove iz znakovnog niza.

char je bilo koji pojedinačni znak. Ako izostavite ovu specifikaciju (i obavezne jednostruke navodnike), kao zadana vrijednost upotrijebit će se prazan znak.

expr je bilo koji izraz koji se procjenjuje na niz znakova.

TRIM(BOTH char FROM expr)

TRIMLEADING

TRIM(LEADING '_' FROM '_abcdef')

Uklanja određene vodeće znakove iz znakovnog niza.

char je bilo koji pojedinačni znak. Ako izostavite ovu specifikaciju (i obavezne jednostruke navodnike), kao zadana vrijednost upotrijebit će se prazan znak.

expr je bilo koji izraz koji se procjenjuje na niz znakova.

TRIM(LEADING char FROM expr)

TRIMTRAILING

TRIM(TRAILING '_' FROM 'abcdef_')

Uklanja određene završne znakove iz znakovnog niza.

char je bilo koji pojedinačni znak. Ako izostavite ovu specifikaciju (i obavezne jednostruke navodnike), kao zadana vrijednost upotrijebit će se prazan znak.

expr je bilo koji izraz koji se procjenjuje na niz znakova.

TRIM(TRAILING char FROM expr)

UPPER

UPPER(Customer_Name)

Pretvara znakovni niz u velika slova.

expr je bilo koji izraz koji se procjenjuje na niz znakova.

UPPER(expr)

Savjeti pri upotrebi opcije LISTAGG u funkcijama za nizove

Donosimo savjete o upotrebi funkcije LISTAGG za dobivanje najboljih rezultata pri rukovanju nizovima u radnim knjigama. Možete, na primjer, stvoriti niz koji će sadržavati sve gradove u stupcu s podacima.

Ulančavanje više vrijednosti:

Upotrijebite LISTAGG za ulančavanje više vrijednosti niza u jednu ćeliju i jedan redak.

LISTAGG([DISTINCT] <column to concatenate> BY <grouping column>) ON OVERFLOW TRUNCATE
  • DISTINCT - ako vrijednosti nisu jedinstvene, upotrijebite ovaj argument za uklanjanje dupliciranih vrijednosti.
  • ON OVERFLOW TRUNCATE - ako rezultat prekoračuje maksimalnu dopuštenu duljinu, upotrijebite ovaj argument za skraćivanje vraćenog niza.
Primjer podataka
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

Primjeri naredbi i izlaza

LISTAGG(City, ', ') donose izlazne podatke "New York, New York, Boston, Salem, Buffalo, Buffalo, Albany"

LISTAGG(DISTINCT City, ', ') donosi izlazne podatke "New York, Boston, Salem, Buffalo Albany"

LISTAGG(City, ', ' ON OVERFLOW TRUNCATE '...') donosi izlazne podatke "New York, New York, Boston, Salem, Buffalo, ..."

Funkcije sustava

Funkcija sustava USER vraća vrijednosti koje se odnose na sesiju. Npr., korisničko ime pomoću kojeg ste se prijavili.

Funkcija Primjer Opis Sintaksa

DATABASE

 

Vraća naziv predmetnog područja u koje ste prijavljeni.

DATABASE()

USER

 

Vraća korisničko ime semantičkog modela u koji ste prijavljeni.

USER()

Funkcije vremenske serije

Funkcije vremenske serije omogućavaju sabiranje i predviđanje podataka temeljem vremenskih dimenzija. Npr., možete upotrijebiti funkciju AGO za izračunavanje prihoda od prije godinu dana.

Članovi vremenske dimenzije moraju biti na razini funkcije ili ispod nje. Zbog toga se u upitu mora projicirati jedan ili više stupaca koji na jedinstveni način identificiraju mjere na danoj razini ili ispod nje.

Funkcija Primjer Opis Sintaksa

AGO

SELECT Year_ID, AGO(sales, year, 1)

Izračunava sabranu vrijednost mjere u definiranom vremenskom razdoblju u prošlosti. Npr., za izračunavanje mjesečnog prihoda od prije godinu dana upotrijebite AGO(Revenue, Year, 1, SHIP_MONTH). Za izračunavanje tromjesečnih prihoda u prethodnom tromjesečju upotrijebite AGO(Revenue, Quarter, 1).

AGO(MEASURE, TIME_LEVEL, OFFSET)

Pri čemu je:

  • MEASURE predstavlja mjeru za izračunavanje, primjerice prihoda.
  • TIME_LEVEL predstavlja vremenski interval, a on mora biti godina, tromjesečje, mjesec, tjedan ili dan.
  • OFFSET predstavlja broj vremenskih intervala za izračunavanje; npr., 1 za jednu godinu.

PERIODROLLING

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

Izračunava sabranu vrijednost mjere za razdoblje koje počinje x vremenskih jedinica od tekućeg vremena, a završava y vremenskih jedinica od tekućeg vremena. PERIODROLLING može, na primjer, izračunati prodaju za razdoblje koje počinje tromjesečje prije tekućeg tromjesečja, a završava tromjesečje nakon tekućeg tromjesečja.

PERIODROLLING(measure, x [,y])

Pri čemu je:

  • MEASURE predstavlja naziv stupca mjere.
  • X je cijeli broj koji predstavlja pomak od trenutačnog vremena.
  • Y je cijeli broj koji predstavlja broj vremenskih jedinica potrebnih za izračun funkcije.
  • HIERARCHY nije obavezan argument, a predstavlja naziv hijerarhije u dimenziji vremena, npr. YR, MON, DAY, koji želite upotrijebiti za izračun vremenskog razdoblja.

TODATE

SELECT Year_ID, Month_ID, TODATE (sales, year)

Izračunava sabranu vrijednost mjere od vremena početka do posljednjeg vremenskog razdoblja, na primjer izračune u tekućoj godini.

Npr., želite li izračunati prodaju u tekućoj godini, upotrijebite TODATE(sales, year).

TODATE(MEASURE, TIME_LEVEL)

Pri čemu je:

  • MEASURE predstavlja izraz koji navodi najmanje jedan stupac mjere, npr. prodaju.
  • TIME_LEVEL predstavlja vremenski interval, a on mora biti godina, tromjesečje, mjesec, tjedan ili dan.