Funksjoner

Det finnes ulike typer funksjoner du kan bruke i uttrykk.

Emner:

Analytiske funksjoner

Du kan bruke analysefunksjoner til å utforske data ved hjelp av modeller som prognoser, trendlinjer og klynger. Du kan også dra analysefunksjoner inn i redigeringsprogrammet for arbeidsboken og slippe dem der.

Du kan også legge til prognoser, trendlinjer og klynger i en arbeidsbok ved å velge dem i fanen Analyse i ruten Data i redigeringsprogrammet for arbeidsboken. Se Legge til funksjoner for statistiske analyser i visualiseringer.

Funksjon Eksempel Beskrivelse Syntaks

CLUSTER

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

Samler et sett med poster i grupper basert på ett eller flere inndatauttrykk ved hjelp av K-Means eller hierarkisk klynging.

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

FORECAST

Eksempel på omsetningsprognose etter dag

Dette eksemplet velger omsetningsprognose etter dag.

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

Eksempel på omsetningsprognose etter år og kvartal

Dette eksemplet velger omsetningsprognose etter år og kvartal.

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

Oppretter en tidsseriemodell av den angitte målingen over serien ved hjelp av eksponentiell glatting (ETS), sesongbasert ARIMA eller ARIMA. Denne funksjonen sender en prognose som utdata for et sett med perioder, som angitt av argumentet numPeriods.

Se også flere parametre for funksjonen FORECAST nedenfor.

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

Der:

  • measure representerer målingen som prognosen skal utarbeides for, for eksempel inntektsdata.

  • series representerer tidsinndelingen prognosemodellen er bygd med. Serien er en liste over én eller flere tidsdimensjonskolonner. Hvis du utelater serien, fastsettes kornetheten for tid ut fra spørringen.

  • output_column_name representerer de gyldige kolonnenavnene for forecast, low, high og predictionInterval.

  • options representerer en strengliste med navn/verdi-par atskilt med semikolon (;). Verdien kan omfatte %1 ... %N angitt i runtime_binded_options.

  • runtime_binded_options representerer en kommadelt liste over kolonner og valg. Verdiene for disse kolonnene og valgene evalueres og løses i løpet av utførelsestiden for den enkelte spørringen.

Se også flere parametre for funksjonen FORECAST nedenfor.

OUTLIER

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

Klassifiserer en post som sterkt avvikende basert på ett eller flere inndatauttrykk, ved hjelp av K-Means, hierarkisk klynging eller oppdagingsalgoritmer for Multi-Variate Outlier.

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

REGR

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

Passer til en lineær modell og returnerer de tilpassede verdiene eller modellene. Denne funksjonen kan brukes til å tilpasse en lineær kurve på to målinger.

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 anbefaler at du bruker en trendlinje med egenskapen Legg til statistikk når du viser en visualisering. Se Justere visualiseringsegenskaper.

Passer til en lineær, polynom eller eksponentiell modell, og returnerer de tilpassede verdiene eller modellene. numeric_expr representerer Y-verdien for trenden, og series (tidskolonner) representerer X-verdien.

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

Parametre for funksjonen FORECAST Følgende tabell viser tilgjengelige parametre som kan brukes med funksjonen FORECAST.

Parameternavn Verdier Beskrivelse
numPeriods Heltall Antall perioder som skal prognostiseres.
predictionInterval Fra 0 til 100, der høyere verdier angir høyere konfidens Konfidensnivået for prediksjonen.
modelType

ETS (eksponentiell glatting)

SeasonalArima

ARIMA

Modellen som skal brukes til prognostisering.
useBoxCox

TRUE

FALSE

Hvis TRUE brukes Box-Cox-omforming.
lambdaValue Ikke tilgjengelig

Parameteren for Box-Cox-omforming.

Ignorer hvis NULL eller når useBoxCox er FALSE.

Ellers omformes dataene før modellen er beregnet.

trendDamp

TRUE

FALSE

Dette gjelder spesifikt for modellen Eksponentiell glatting.

Hvis TRUE brukes dempet trend. Hvis FALSE eller NULL brukes ikke-dempet trend.

errorType

Ikke tilgjengelig

Dette gjelder spesifikt for modellen Eksponentiell glatting.
trendType

N (ingen)

A (additiv)

M (multiplikativ)

Z (automatisk valgt)

Dette gjelder spesifikt for modellen Eksponentiell glatting
seasonType

N (ingen)

A (additiv)

M (multiplikativ)

Z (automatisk valgt)

Dette gjelder spesifikt for modellen Eksponentiell glatting
modelParamIC

ic_auto

ic_aicc

ic_bic

ic_auto (denne er standard)

Informasjonskriteriet (IC) brukes i modellvalget.

Konverteringsfunksjoner

Konverteringsfunksjoner konverterer en verdi fra ett format til et annet.

Funksjon Eksempel Beskrivelse Syntaks

CAST

CAST(hiredate AS CHAR(40)) FROM employee

Endrer datatypen for et uttrykk eller en null-strengkonstant til en annen datatype. Du kan for eksempel tilordne et kundenavn (datatypen CHAR eller VARCHAR) eller en fødselsdato (en datetime-konstant).

Bruk CAST til å endre til datatypen Date.

Ikke bruk TODATE.

CAST(expr AS type)

IFNULL

IFNULL(Sales, 0)

Tester om et uttrykk evalueres til en nullverdi. Hvis det gjør det, tilordnes den angitte verdien til uttrykket.

IFNULL(expr, value)

INDEXCOL

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

Bruker eksterne opplysninger til å gå tilbake til den riktige kolonnen som den påloggede brukeren skal se.

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

Sammenligner to uttrykk. Hvis de er like, returnerer funksjonen NULL. Hvis de ikke er like, returnerer funksjonen det første uttrykket. Du kan ikke angi strengkonstanten NULL for det første uttrykket.

NULLIF([expression], [expression])

To_DateTime

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

Konverterer strengkonstanter med formatet DateTime til datatypen DateTime.

To_DateTime([expression], [literal])

VALUEOF

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

Refererer til verdien for en semantisk modellvariabel i et filter.

Bruk expr-variabler som argumenter for funksjonen VALUEOF. Referer til statiske semantiske modellvariabler med navn.

VALUEOF(expr)

Funksjoner for datouttrekk

Disse funksjonene beregner tidsstempelverdier eller avrunder tidsstempelverdier nedover til den nærmeste angitte tidsperioden, for eksempel time, dag, uke, måned eller kvartal.

Du kan bruke de beregnede tidsstemplene til å aggregere data med en annen kornethet. Du kan for eksempel bruke funksjonen EXTRACTDAY() på salgsordredatoer for å beregne et tidsstempel for midnatt den dagen ordrene forekommer, slik at du kan aggregere dataene etter dag.

Funksjon Eksempel Beskrivelse Syntaks

Trekk ut dag

EXTRACTDAY("Ordredato")
  • 2/22/1967 3:02:01 AM returnerer 2/22/1967 12:00:00 AM.
  • 9/2/2022 10:38:21 AM returnerer 9/2/2022 12:00:00 AM.

Returnerer et tidsstempel for midnatt (12 AM) den dagen inndataverdien forekommer. Hvis tidsstempelet for inndataene for eksempel er for 3:02:01 AM 22. februar, returnerer funksjonen tidsstempelet for 12:00:00 AM 22. februar.

EXTRACTDAY(expr)

Trekk ut time

EXTRACTHOUR("Ordredato")
  • 2/22/1967 3:02:01 AM returnerer 2/22/1967 3:00:00 AM.
  • 6/17/1999 11:18:30 PM returnerer 6/17/1999 11:00:00 PM.

Returnerer et tidsstempel for starten på timen som inndataverdien forekommer i. Hvis tidsstempelet for inndataene for eksempel er for 11.18.30 PM, returnerer funksjonen tidsstempelet for 11.00.00 PM.

EXTRACTHOUR (expr)

Trekk ut tid på dagen

EXTRACTHOUROFDAY("Ordredato")
  • 2014/09/24 10:58:00 returnerer 2000/01/01 10:00:00.
  • 2014/08/13 11:10:00 returnerer 2000/01/01 11:00:00

Returnerer et tidsstempel der timen er lik timen for inndataverdien med standardverdier for år, måned, dag, minutter og sekunder.

EXTRACTHOUROFDAY(expr)

Trekk ut millisekund

EXTRACTMILLISECOND("Ordredato")
  • 1997/01/07 15:32:02.150 returnerer 1997/01/07 15:32:02.150.
  • 1997/01/07 18:42:01.265 returnerer 1997/01/07 18:42:01.265.
Returnerer et tidsstempel som inneholder millisekunder for inndataverdien. Hvis tidsstempelet for inndataene for eksempel er for 15.32.02.150, returnerer funksjonen tidsstempelet for 15.32.02.150.

EXTRACTMILLISECOND(expr)

Trekk ut minutt

EXTRACTMINUTE("Ordredato")
  • 6/17/1999 11:18:00 PM returnerer 6/17/1999 11:18:00 PM.
  • 9/2/2022 10:38:21 AM returnerer 9/2/2022 10:38:00 AM.

Returnerer et tidsstempel for starten på minuttet som inndataverdien forekommer i. Hvis tidsstempelet for inndataene for eksempel er for 11.38.21 AM, returnerer funksjonen tidsstempelet for 11.38.00 AM.

EXTRACTMINUTE (expr)

Trekk ut måned

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

Returnerer et tidsstempel for den første dagen i måneden som inndataverdien forekommer i. Hvis tidsstempelet for inndataene for eksempel er for 22. februar, returnerer funksjonen tidsstempelet for 1. februar.

EXTRACTMONTH(expr)

Trekk ut kvartal

EXTRACTQUARTER("Ordredato")
  • 2/22/1967 3:02:01 AM returnerer 1/1/1967 12:00:00 AM, den første dagen i det første regnskapskvartalet.
  • 6/17/1999 11:18:00 PM returnerer 4/1/1999 12:00:00 AM, den første dagen i det andre regnskapskvartalet.

  • 9/2/2022 10:38:21 AM returnerer 7/1/2022 12:00:00 AM, den første dagen i det tredje regnskapskvartalet.

    Tips: Bruk QUARTER (expr) til å beregne bare kvartalet med ordenstall fra det returnerte tidsstempelet.

Returnerer et tidsstempel for den første dagen i kvartalet som inndataverdien forekommer i. Hvis tidsstempelet for inndataene for eksempel forekommer i det tredje regnskapskvartalet, returnerer funksjonen tidsstempelet for 1. juli.

EXTRACTQUARTER(expr)

Trekk ut sekund

EXTRACTSECOND("Ordredato")
  • 1997/01/07 15:32:02.150 returnerer 1997/01/07 15:32:02.
  • 1997/01/07 20:44:18.163 returnerer 1997/01/07 20:44:18.

Returnerer et tidsstempel for inndataverdien. Hvis tidsstempelet for inndataene for eksempel er for 15.32.02.150, returnerer funksjonen tidsstempelet for 15.32.02.

EXTRACTSECOND(expr)

Trekk ut uke

EXTRACTWEEK("Ordredato")
  • 2014/09/24 10:58:00 returnerer 2014/09/21.

  • 2014/08/13 11:10:00 returnerer 2014/08/10.

Returnerer datoen for den første dagen i uken (søndag) som inndataverdien forekommer i. Hvis tidsstempelet for inndataene for eksempel er for onsdag 24. september, returnerer funksjonen tidsstempelet for søndag 21. september.

Merknad: Hvis den første dagen i en uke (det vil si søndag) faller innenfor et tidligere år og derfor har negativ innvirkning på aggregeringen, returnerer funksjonen den sjuende dagen i uken (det vil si lørdag) i det inneværende året i stedet for den første dagen i uken i det forrige året. Eksempel: 1/1/24, 1/2/24 og 1/3/24 aggregeres alle til lørdag 1/6/24 i stedet for søndag 12/29/23.

EXTRACTWEEK(expr)

Trekk ut år

EXTRACTYEAR("Ordredato")
  • 1967/02/22 03:02:01 returnerer 1967/01/01 00:00:00.
  • 1999/06/17 23:18:00 returnerer 1999/01/01 00:00:00.

Returnerer et tidsstempel for 1. januar for året som inndataverdien forekommer i. Hvis tidsstempelet for inndataene for eksempel forekommer i 1967, returnerer funksjonen tidsstempelet for 1. januar 1967.

EXTRACTYEAR (expr)

Tips om bruk av datodimensjoner i emneområder

Her er noen tips om hvordan du oppnår best mulige resultater ved bruk av emneområdedatoer i beregninger.

Legge til en emneområdedato i en beregning

Hvis du drar en dato fra et emneområde og rett inn i en beregning og behandler den som en streng eller et heltall, får du en feilmelding. Dette skjer fordi den underliggende datoverdien er et tidsstempel.

Bruk heller en av datouttrekksfunksjonene for å tolke datoen. Se Funksjoner for datouttrekk.

Du kan for eksempel ha disse emneområdedatoene.
Beskrivelse av GUID-39C55B3A-A055-45D3-9904-948680247C08-default.png følger
.png

Hvis du vil trekke ut måneder fra disse emneområdedatoene, bruker du funksjonen ExtractMonthOfYear:

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

Visningsfunksjoner

Visningsfunksjoner fungerer på resultatsettet i en spørring.

Funksjon Eksempel Beskrivelse Syntaks

BottomN

BottomN(Sales, 10)

Returnerer de n laveste verdiene for et uttrykk, rangert fra lavest til høyest.

BottomN([NumericExpression], [integer])

FILTER

FILTER(Sales USING Product = 'widget')

Beregner uttrykket med det angitte filteret for forhåndsaggregering.

FILTER(measure USING filter_expr)

MAVG

MAVG(Sales, 10)

Beregner et glidende gjennomsnitt (middelverdi) for de siste n radene med data i resultatsettet, inkludert den gjeldende raden.

MAVG([NumericExpression], [integer])

MSUM

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

Beregner en glidende sum for de siste n radene med data, inkludert den gjeldende raden.

Summen for den første raden er lik det numeriske uttrykket for den første raden. Summen for den andre raden beregnes ved å ta summen av de to første radene med data og så videre. Når rad n nås, beregnes summen basert på de siste n radene med data.

MSUM([NumericExpression], [integer])

NTILE

NTILE(Sales, 100)

Bestemmer rangeringen for en verdi når det gjelder et brukerangitt område. Den returnerer heltall som representerer et hvilket som helst rangeringsområde. Eksemplet viser et område fra 1 til 100, der laveste salg = 1 og høyeste salg = 100.

NTILE([NumericExpresssion], [integer])

PERCENTILE

PERCENTILE(Sales)

Beregner en prosentrangering for hver verdi som oppfyller argumentet for numerisk uttrykk. Persentilrangeringsområdene er fra og med 0 (1. persentil) til og med 1 (100. persentil).

PERCENTILE([NumericExpression])

RANK

RANK(Sales)

Beregner rangeringen for hver verdi som oppfyller argumentet for numerisk uttrykk. Det høyeste tallet tilordnes rangeringen 1, og hver enkelt etterfølgende rangering tilordnes neste etterfølgende heltall (2, 3, 4 ...). Hvis enkelte verdier er like, tilordnes de samme rangering (for eksempel 1, 1, 1, 4, 5, 5, 7 ...).

RANK([NumericExpression])

RCOUNT

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

Tar et sett med poster som inndata og teller antallet poster som er oppdaget så langt.

RCOUNT([NumericExpression])

RMAX

SELECT month, profit, RMAX(profit) FROM sales

Tar et sett med poster som inndata og viser maksimumsverdien basert på postene som er oppdaget så langt. Den angitte datatypen må være en type som kan sorteres.

RMAX([NumericExpression])

RMIN

SELECT month, profit, RMIN(profit) FROM sales

Tar et sett med poster som inndata og viser minimumsverdien basert på postene som er oppdaget så langt. Den angitte datatypen må være en type som kan sorteres.

RMIN([NumericExpression])

RSUM

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

Beregner en løpende sum basert på poster som er oppdaget så langt.

Summen for den første raden er lik det numeriske uttrykket for den første raden. Summen for den andre raden beregnes ved å ta summen av de to første radene med data og så videre.

RSUM([NumericExpression])

TOPN

TOPN(Sales, 10)

Returnerer de n høyeste verdiene for et uttrykk, rangert fra høyest til lavest.

TOPN([NumericExpression], [integer])

Tips om bruk av visningsfunksjoner

  • FILTER: Hvis du bygger en rapport ved hjelp av et emneområde, bruker du hierarkier som er definert i emneområdet, i stedet for å filtrere hierarkikolonner direkte i en beregning. Hvis et emneområde har et hierarki for tid/regnskapsår/regnskapskvartal, bruker du altså ikke følgende:

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

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

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

Evalueringsfunksjoner

Evalueringsfunksjoner er databasefunksjoner som kan brukes til sending gjennom uttrykk, slik at resultatet blir avanserte beregninger.

Det kan hende at innebygde databasefunksjoner må ha én eller flere kolonner. Disse kolonnene refereres til av %1 ... %N i funksjonen. De faktiske kolonnene må vises etter funksjonen.

Funksjon Eksempel Beskrivelse Syntaks

EVALUATE

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

Sender den angitte databasefunksjonen med valgfrie refererte kolonner som parametre til databasen for evaluering.

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

EVALUATE_AGGR

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

Sender den angitte databasefunksjonen med valgfrie refererte kolonner som parametre til databasen for evaluering. Denne funksjonen er beregnet på aggregeringsfunksjoner med et GROUP BY-ledd.

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

Matematiske funksjoner

De matematiske funksjonene som beskrives i denne delen, utfører matematiske operasjoner.

Funksjon Eksempel Beskrivelse Syntaks

ABS

ABS(Profit)

Beregner den absolutte verdien av et numerisk uttrykk.

expr er et hvilket som helst uttrykk som evalueres til en numerisk verdi.

ABS(expr)

ACOS

ACOS(1)

Beregner buekosinusen for et numerisk uttrykk.

expr er et hvilket som helst uttrykk som evalueres til en numerisk verdi.

ACOS(expr)

ASIN

ASIN(1)

Beregner buesinusen for et numerisk uttrykk.

expr er et hvilket som helst uttrykk som evalueres til en numerisk verdi.

ASIN(expr)

ATAN

ATAN(1)

Beregner buetangensen for et numerisk uttrykk.

expr er et hvilket som helst uttrykk som evalueres til en numerisk verdi.

ATAN(expr)

ATAN2

ATAN2(1, 2)

Beregner buetangensen for y /x, der y er det første numeriske uttrykket og x er det andre numeriske uttrykket.

ATAN2(expr1, expr2)

CEILING

CEILING(Profit)

Avrunder et numerisk ikke-negativt heltall til det nest høyeste heltallet. Hvis det numeriske uttrykket evalueres til et heltall, returnerer funksjonen CEILING dette heltallet.

CEILING(expr)

COS

COS(1)

Beregner kosinusen for et numerisk uttrykk.

expr er et hvilket som helst uttrykk som evalueres til en numerisk verdi.

COS(expr)

COT

COT(1)

Beregner kotangensen for et numerisk uttrykk.

expr er et hvilket som helst uttrykk som evalueres til en numerisk verdi.

COT(expr)

DEGREES

DEGREES(1)

Konverterer et uttrykk fra radianer til grader.

expr er et hvilket som helst uttrykk som evalueres til en numerisk verdi.

DEGREES(expr)

EXP

EXP(4)

Sender verdien til den angitte potensen. Beregner e opphøyd i n. potens, der e er grunnlaget for den naturlige logaritmen.

EXP(expr)

ExtractBit

Int ExtractBit(1, 5)

Henter en bit på en bestemt posisjon i et heltall. Returnerer heltallet 0 eller 1 som samsvarer med posisjonen for biten.

ExtractBit([Source Number], [Digits])

FLOOR

FLOOR(Profit)

Avrunder et numerisk ikke-negativt heltall til det nest laveste heltallet. Hvis det numeriske uttrykket evalueres til et heltall, returnerer funksjonen FLOOR dette heltallet.

FLOOR(expr)

LOG

LOG(1)

Beregner den naturlige logaritmen for et uttrykk.

expr er et hvilket som helst uttrykk som evalueres til en numerisk verdi.

LOG(expr)

LOG10

LOG10(1)

Beregner base 10-logaritmen for et uttrykk.

expr er et hvilket som helst uttrykk som evalueres til en numerisk verdi.

LOG10(expr)

MOD

MOD(10, 3)

Dividerer det første numeriske uttrykket med det andre numeriske uttrykket, og returnerer den gjenstående delen av kvotienten.

MOD(expr1, expr2)

PI

PI()

Returnerer konstantverdien pi.

PI()

POWER

POWER(Profit, 2)

Tar det første numeriske uttrykket og hever det til potensen som er angitt i det andre numeriske uttrykket.

POWER(expr1, expr2)

RADIANS

RADIANS(30)

Konverterer et uttrykk fra grader til radianer.

expr er et hvilket som helst uttrykk som evalueres til en numerisk verdi.

RADIANS(expr)

RAND

RAND()

Returnerer et pseudotilfeldig tall mellom 0 og 1.

RAND()

RANDFromSeed

RAND(2)

Returnerer et pseudotilfeldig tall basert på en seedingsverdi. For en gitt seedingsverdi genereres det samme settet med tilfeldige tall.

RAND(expr)

ROUND

ROUND(2.166000, 2)

Runder av et numerisk uttrykk til n nøyaktighetssifre.

expr er et hvilket som helst uttrykk som evalueres til en numerisk verdi.

integer er et hvilket som helst positivt heltall som står for antallet nøyaktighetssifre.

ROUND(expr, integer)

SIGN

SIGN(Profit)

Returnerer følgende:

  • 1 hvis det numeriske uttrykket evalueres til et positivt tall

  • -1 hvis det numeriske uttrykket evalueres til et negativt tall

  • 0 hvis det numeriske uttrykket evalueres til null

SIGN(expr)

SIN

SIN(1)

Beregner sinusen for et numerisk uttrykk.

SIN(expr)

SQRT

SQRT(7)

Beregner kvadratroten av argumentet for det numeriske uttrykket. Det numeriske uttrykket må evalueres til et ikke-negativt tall.

SQRT(expr)

TAN

TAN(1)

Beregner tangensen for et numerisk uttrykk.

expr er et hvilket som helst uttrykk som evalueres til en numerisk verdi.

TAN(expr)

TRUNCATE

TRUNCATE(45.12345, 2)

Kutter av et desimaltall for å returnere et angitt antall desimaler etter desimalskilletegnet.

expr er et hvilket som helst uttrykk som evalueres til en numerisk verdi.

integer er ethvert positivt heltall som står for antallet tegn til høyre i desimalplassen som skal returneres.

TRUNCATE(expr, integer)

Kjørende aggregeringsfunksjoner

Kjøring av aggregeringsfunksjoner utfører operasjoner på flere verdier for å opprette sammendragsresultater.

Funksjon Eksempel Beskrivelse Syntaks

MAVG

 

Beregner et glidende gjennomsnitt (middelverdi) for de siste n radene med data i resultatsettet, inkludert den gjeldende raden.

expr er et uttrykk som evalueres til en numerisk verdi. integer er et hvilket som helst positivt heltall. Representerer gjennomsnittet for de siste n radene med data.

MAVG(expr, integer)

MSUM

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

Beregner en glidende sum for de siste n radene med data, inkludert den gjeldende raden.

expr er et uttrykk som evalueres til en numerisk verdi. integer er et hvilket som helst positivt heltall. Representerer summen av de siste n radene med data.

MSUM(expr, integer)

RSUM

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

Beregner en løpende sum basert på poster som er oppdaget så langt.

expr er et hvilket som helst uttrykk som evalueres til en numerisk verdi.

RSUM(expr)

RCOUNT

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

Tar et sett med poster som inndata og teller antallet poster som er oppdaget så langt.

expr er et uttrykk av en hvilken som helst datatype.

RCOUNT(expr)

RMAX

SELECT month, profit,RMAX(profit) from sales_subject_area

Tar et sett med poster som inndata og viser maksimumsverdien basert på postene som er oppdaget så langt.

expr er et uttrykk av en hvilken som helst datatype.

RMAX(expr)

RMIN

select month, profit,RMIN(profit) from sales_subject_area

Tar et sett med poster som inndata og viser minimumsverdien basert på postene som er oppdaget så langt.

expr er et uttrykk av en hvilken som helst datatype.

RMIN(expr)

Flerdimensjonale funksjoner

Du kan bruke flerdimensjonale funksjoner til å utføre geografiske analyser når du modellerer data. Du kan for eksempel beregne avstanden mellom to geografiske områder (også kalt former eller polygoner).

Merknad:

Du kan ikke bruke disse flerdimensjonale funksjonene i egendefinerte beregninger for visualiseringsarbeidsbøker.
Funksjon Eksempel Beskrivelse Syntaks
GeometryArea

GeometryArea(Shape)

Beregner området en form opptar.

GeometryArea(Shape)

GeometryDistance

GeometryDistance(TRIP_START, TRIP_END)

Beregner avstanden mellom to former.

GeometryDistance(Shape 1, Shape 2)

GeometryLength

GeometryLength(Shape)

Beregner omkretsen av en form.

GeometryLength(Shape)

GeometryRelate

GeometryRelate(TRIP_START, TRIP_END)

Fastslår om én form befinner seg i en annen form. Returnerer TRUE eller FALSE som en streng (VARCHAR).

GeometryRelate(Shape 1, Shape 2)

GeometryWithinDistance

GeometryWithinDistance(TRIP_START, TRIP_END, 500)

Fastslår om to former er innenfor en bestemt avstand i forhold til hverandre. Returnerer TRUE eller FALSE som en streng (VARCHAR).

GeometryWithinDistance(Shape1, Shape2, DistanceInFloat)

Strengfunksjoner

Strengfunksjoner utfører forskjellige endringer av tegn. De brukes med tegnstrenger.

Funksjon Eksempel Beskrivelse Syntaks

ASCII

ASCII('a')

Konverterer en enkelttegnstreng til den tilhørende ASCII-koden, mellom 0 og 255. Hvis tegnuttrykket evalueres til flere tegn, returneres ASCII-koden som tilsvarer det første tegnet i uttrykket.

expr er et hvilket som helst uttrykk som evalueres til en tegnstreng.

ASCII(expr)

BIT_LENGTH

BIT_LENGTH('abcdef')

Returnerer lengden, i biter, for en angitt streng. Hvert Unicode-tegn er 2 byte langt (tilsvarer 16 biter).

expr er et hvilket som helst uttrykk som evalueres til en tegnstreng.

BIT_LENGTH(expr)

CHAR

CHAR(35)

Konverterer en numerisk verdi mellom 0 og 255 til tegnverdien som tilsvarer ASCII-koden.

expr er et hvilket som helst uttrykk som evalueres til en numerisk verdi mellom 0 og 255.

CHAR(expr)

CHAR_LENGTH

CHAR_LENGTH(Customer_Name)

Returnerer lengden, i antall tegn, for en angitt streng. Foranstilte og etterfølgende mellomrom medregnes ikke i strenglengden.

expr er et hvilket som helst uttrykk som evalueres til en tegnstreng.

CHAR_LENGTH(expr)

CONCAT

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

Kjeder sammen to tegnstrenger.

exprs er uttrykk som evalueres til tegnstrenger, atskilt med kommaer.

Du må bruke rådata, ikke formaterte data, med CONCAT.

CONCAT(expr1, expr2)

INSERT

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

Setter inn en angitt tegnstreng på et bestemt sted i en annen tegnstreng.

expr1 er et hvilket som helst uttrykk som evalueres til en tegnstreng. Identifiserer måltegnstrengen.

integer1 er ethvert positivt heltall som står for antallet tegn fra begynnelsen av målstrengen der den andre strengen skal settes inn.

integer2 er ethvert positivt heltall som står for antallet tegn i målstrengen som skal erstattes av den andre strengen.

expr2 er et hvilket som helst uttrykk som evalueres til en tegnstreng. Identifiserer tegnstrengen som skal settes inn i målstrengen.

INSERT(expr1, integer1, integer2, expr2)

LEFT

SELECT LEFT('123456', 3) FROM table

Returnerer et angitt antall tegn fra venstre i en streng.

expr er et hvilket som helst uttrykk som evalueres til en tegnstreng.

integer er ethvert positivt heltall som står for antallet tegn fra venstre i strengen som skal returneres.

LEFT(expr, integer)

LENGTH

LENGTH(Customer_Name)

Returnerer lengden, i antall tegn, for en angitt streng. Lengden returneres uten eventuelle etterfølgende mellomrom.

expr er et hvilket som helst uttrykk som evalueres til en tegnstreng.

LENGTH(expr)

LOCATE

LOCATE('d' 'abcdef')

Returnerer den numeriske posisjonen til en tegnstreng i en annen tegnstreng. Hvis tegnstrengen ikke befinner seg i strengen det søkes i, returneres verdien 0.

expr1 er et hvilket som helst uttrykk som evalueres til en tegnstreng. Identifiserer strengen det skal søkes etter.

expr2 er et hvilket som helst uttrykk som evalueres til en tegnstreng.

Identifiserer strengen det skal søkes i.

LOCATE(expr1, expr2)

LOCATEN

LOCATEN('d' 'abcdef', 3)

Returnerer, som med LOCATE, den numeriske posisjonen til en tegnstreng i en annen tegnstreng. LOCATEN inkluderer et heltallsargument som gir deg muligheten til å angi en startposisjon når du skal begynne søket.

expr1 er et hvilket som helst uttrykk som evalueres til en tegnstreng. Identifiserer strengen det skal søkes etter.

expr2 er et hvilket som helst uttrykk som evalueres til en tegnstreng. Identifiserer strengen det skal søkes i.

integer er ethvert positivt heltall (som ikke er null) som står for startposisjonen der søket etter tegnstrengen skal begynne.

LOCATEN(expr1, expr2, integer)

LOWER

LOWER(Customer_Name)

Konverterer en tegnstreng til små bokstaver.

expr er et hvilket som helst uttrykk som evalueres til en tegnstreng.

LOWER(expr)

OCTET_LENGTH

OCTET_LENGTH('abcdef')

Returnerer antall byte for en angitt streng.

expr er et hvilket som helst uttrykk som evalueres til en tegnstreng.

OCTET_LENGTH(expr)

POSITION

POSITION('d', 'abcdef')

Returnerer den numeriske posisjonen for strExpr1 i et tegnuttrykk. Hvis strExpr1 ikke finnes, returneres 0.

expr1 er et hvilket som helst uttrykk som evalueres til en tegnstreng. Identifiserer strengen det skal søkes etter i målstrengen. Eksempel: d.

expr2 er et hvilket som helst uttrykk som evalueres til en tegnstreng. Identifiserer målstrengen det skal søkes i. Eksempel: abcdef.

POSITION(expr1, expr2)

REPEAT

REPEAT('abc', 4)

Gjentar et angitt uttrykk n ganger.

expr er et hvilket som helst uttrykk som evalueres til en tegnstreng.

integer er ethvert positivt heltall som står for antallet ganger tegnstrengen skal gjentas.

REPEAT(expr, integer)

REPLACE

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

Erstatter ett eller flere tegn fra et angitt tegnuttrykk med ett eller flere andre tegn.

expr1 er et hvilket som helst uttrykk som evalueres til en tegnstreng. Dette er strengen der tegn skal erstattes.

expr2 er et hvilket som helst uttrykk som evalueres til en tegnstreng. Denne andre strengen identifiserer tegnene fra den første strengen som skal erstattes.

expr3 er et hvilket som helst uttrykk som evalueres til en tegnstreng. Denne tredje strengen angir tegnene som skal brukes som erstatning i den første strengen.

REPLACE(expr1, expr2, expr3)

RIGHT

SELECT RIGHT('123456', 3) FROM table

Returnerer et angitt antall tegn fra høyre i en streng.

expr er et hvilket som helst uttrykk som evalueres til en tegnstreng.

integer er ethvert positivt heltall som står for antallet tegn fra høyre i strengen som skal returneres.

RIGHT(expr, integer)

SPACE

SPACE(2)

Setter inn mellomrom.

integer er et hvilket som helst positivt heltall som angir antallet mellomrom som skal settes inn.

SPACE(expr)

SUBSTRING

SUBSTRING('abcdef' FROM 2)

Oppretter en ny streng som begynner fra et fastsatt antall tegn inn i den opprinnelige strengen.

expr er et hvilket som helst uttrykk som evalueres til en tegnstreng.

startPos er ethvert positivt heltall som står for antallet tegn fra begynnelsen av venstre side i strengen der resultatet skal begynne.

SUBSTRING([SourceString] FROM [StartPostition])

SUBSTRINGN

SUBSTRING('abcdef' FROM 2 FOR 3)

Oppretter, som med SUBSTRING, en ny streng som begynner fra et fastsatt antall tegn inn i den opprinnelige strengen.

SUBSTRINGN inkluderer et heltallsargument som gir deg muligheten til å angi lengden på den nye strengen, i antall tegn.

expr er et hvilket som helst uttrykk som evalueres til en tegnstreng.

startPos er ethvert positivt heltall som står for antallet tegn fra begynnelsen av venstre side i strengen der resultatet skal begynne.

SUBSTRING(expr FROM startPos FOR length)

TrimBoth

Trim(BOTH '_' FROM '_abcdef_')

Fjerner angitte innledende og avsluttende tegn fra en tegnstreng.

char er ethvert enkelttegn. Hvis du utelater denne angivelsen (og de obligatoriske enkle anførselstegnene), brukes det et tomt tegn som standard.

expr er et hvilket som helst uttrykk som evalueres til en tegnstreng.

TRIM(BOTH char FROM expr)

TRIMLEADING

TRIM(LEADING '_' FROM '_abcdef')

Fjerner angitte innledende tegn fra en tegnstreng.

char er ethvert enkelttegn. Hvis du utelater denne angivelsen (og de obligatoriske enkle anførselstegnene), brukes det et tomt tegn som standard.

expr er et hvilket som helst uttrykk som evalueres til en tegnstreng.

TRIM(LEADING char FROM expr)

TRIMTRAILING

TRIM(TRAILING '_' FROM 'abcdef_')

Fjerner angitte avsluttende tegn fra en tegnstreng.

char er ethvert enkelttegn. Hvis du utelater denne angivelsen (og de obligatoriske enkle anførselstegnene), brukes det et tomt tegn som standard.

expr er et hvilket som helst uttrykk som evalueres til en tegnstreng.

TRIM(TRAILING char FROM expr)

UPPER

UPPER(Customer_Name)

Konverterer en tegnstreng til store bokstaver.

expr er et hvilket som helst uttrykk som evalueres til en tegnstreng.

UPPER(expr)

Tips om bruk av strengfunksjoner

Her er noen tips om hvordan du oppnår best mulige resultater ved bruk av strengfunksjoner i arbeidsbøker.

Kjed sammen flere verdier:

Bruk LISTAGG for å kjede sammen flere verdier i én celle og én rad.

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

Legg til on overflow truncate hvis resultatstrengen er for lang, og legg til distinct hvis verdiene ikke er unike.

Eksempel:

listagg(distinct City_ID by STATE on overflow truncate)

Systemfunksjoner

Systemfunksjonen USER returnerer verdier som er knyttet til økten, for eksempel brukernavnet du brukte ved pålogging.

Funksjon Eksempel Beskrivelse Syntaks

DATABASE

 

Returnerer navnet på emneområdet du er logget på.

DATABASE()

USER

 

Returnerer brukernavnet for den semantiske modellen du er logget på.

USER()

Tidsseriefunksjoner

Du kan bruke tidsseriefunksjoner til å aggregere og utarbeide prognoser for data basert på tidsdimensjoner. Du kan for eksempel bruke funksjonen AGO til å beregne inntekt fra ett år siden.

Tidsdimensjonsmedlemmer må være på eller under nivået for funksjonen. På grunn av dette, må én eller flere kolonner som identifiserer medlemmer unikt på eller under det angitte nivået, være prosjektert i spørringen.

Funksjon Eksempel Beskrivelse Syntaks

AGO

SELECT Year_ID, AGO(sales, year, 1)

Beregner den aggregerte verdien for en måling i en angitt tidsperiode i fortiden. Hvis du for eksempel vil beregne månedlig inntekt for ett år siden, bruker du AGO(Revenue, Year, 1, SHIP_MONTH). Hvis du vil beregne kvartalsvise inntekter i forrige kvartal, bruker du AGO(Revenue, Quarter, 1).

AGO(MEASURE, TIME_LEVEL, OFFSET)

Der:

  • MEASURE representerer målingen som skal beregnes, for eksempel inntekt.
  • TIME_LEVEL representerer tidsintervallet, som må være år, kvartal, måned, uke eller dag.
  • OFFSET representerer antallet tidsintervaller beregningen skal gå tilbake, for eksempel 1 for ett år.

PERIODROLLING

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

Beregner aggregert mengde for en måling over perioden som starter x tidsenheter og slutter y tidsenheter fra det gjeldende tidspunktet. PERIODROLLING kan for eksempel behandle salg for en periode som starter et kvartal før og slutter et kvartal etter inneværende kvartal.

PERIODROLLING(measure, x [,y])

Der:

  • MEASURE representerer navnet på en målingskolonne.
  • X er et heltall som representerer forskyvningen fra det gjeldende tidspunktet.
  • Y er et heltall som representerer antallet tidsenheter som funksjonen skal beregnes over.
  • HIERARCHY er et valgfritt argument som representerer navnet på et hierarki i en tidsdimensjon, for eksempel YR, MON, DAY, som du vil bruke til å beregne tidsvinduet.

TODATE

SELECT Year_ID, Month_ID, TODATE (sales, year)

Beregner den aggregerte verdien for en måling fra starten av en tidsperiode til den siste tidsperioden, for eksempel ved beregninger av hittil i år.

Hvis du for eksempel vil beregne salget hittil i år, bruker du TODATE(sales, year).

TODATE(MEASURE, TIME_LEVEL)

Der:

  • MEASURE representerer et uttrykk som refererer til minst én målingskolonne, for eksempel salg.
  • TIME_LEVEL representerer tidsintervallet, som må være år, kvartal, måned, uke eller dag.