Funktioner

Der findes forskellige typer funktioner, som du kan bruge i udtryk.

Emner:

Analytiske funktioner

Analytiske funktioner gør det muligt for dig at udforske data ved hjælp af modeller som prognoser, tendenslinjer og klynger. Du kan også trække og slippe analytiske funktioner i projektmappeeditoren.

Alternativt kan du føje prognoser, tendenslinjer og klynger til en projektmappe ved at vælge dem på fanen Analyse i panelet Data i projektmappeeditoren. Se Føje statistiske avancerede analytiske funktioner til visualiseringer.

Funktion Eksempel Beskrivelse Syntaks

CLUSTER

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

Indsamler et sæt records og grupperer dem baseret på et eller flere inputudtryk ved hjælp af K-Means eller hierarkiske klynger.

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

FORECAST

Eksempel på indtægtsprognose pr. dag

Dette eksempel vælger indtægtsprognose efter 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å indtægtsprognose pr. år og kvartal

Dette eksempel vælger indtægtsprognose efter å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

Opretter en tidsseriemodel af den angivne model over serien ved hjælp af enten Eksponentiel udjævning (ETS), Sæsonbestemt ARIMA eller ARIMA. Denne funktion genererer en prognose for et sæt perioder, som angives i argumentet numPeriods.

Se også yderligere valg for funktionen FORECAST nedenfor.

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

Hvor:

  • measure repræsenterer den måling, der skal udarbejdes en prognose for, for eksempel indtægtsdata.

  • series repræsenterer det tidsdetaljeniveau, der bruges til opbygning af prognosemodellen. Serien er en liste med en eller flere tidsdimensionskolonner. Hvis du udelader series, bestemmes tidsdetaljegraden ud fra forespørgslen.

  • output_column_name repræsenterer de gyldige kolonnenavne for forecast, low, high og predictionInterval.

  • options repræsenterer en strengliste med navne-/værdipar, der er adskilt af semikoloner (;). Værdien kan inkludere %1 ... %N, som er angivet i runtime_binded_options.

  • runtime_binded_options repræsenterer en kommasepareret liste over kolonner og indstillinger. Værdier for disse kolonner og indstillinger evalueres og fortolkes under udførelsen af individuelle forespørgsler.

Se også yderligere valg for funktionen FORECAST nedenfor.

OUTLIER

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

Klassificerer en record som afvigelse baseret på et eller flere inputudtryk ved hjælp af K-Means eller hierarkiske klynger eller algoritmer med flere variabler til registrering af afvigelser.

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

REGR

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

Tilpasser en lineær model og returnerer de tilpassede værdier eller den tilpassede model. Denne funktion kan bruges til tilpasning af en lineær kurve mellem 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 anvender en Trendline ved hjælp af egenskaben Tilføj statistik, når du viser en visualisering. Se Regulere visualiseringsegenskaber.

Tilpasser en lineær, polynomiel eller eksponentiel model og returnerer de tilpassede værdier eller den tilpassede model. numeric_expr repræsenterer Y-værdien for tendensen, og series (tidskolonner) repræsenterer X-værdien.

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

Valg for funktionen FORECAST Følgende tabel viser de tilgængelige valg, der kan bruges sammen med funktionen FORECAST.

Navn på valg Værdier Beskrivelse
numPeriods Heltal Det antal perioder, der skal udarbejdes en prognose for.
predictionInterval 0 til 100, hvor højere værdier angiver højere konfidens Konfidensniveauet for forudsigelsen.
modelType

ETS (eksponentiel udjævning)

SeasonalArima

ARIMA

Den model, der skal bruges til udarbejdelse af prognoser.
useBoxCox

TRUE

FALSE

Hvis TRUE, skal du bruge en Box-Cox-transformation.
lambdaValue Ikke relevant

Box-Cox-transformationsparameteren.

Ignorer, hvis NULL, eller hvis useBoxCox er FALSE.

Ellers transformeres data, før modellen er estimeret.

trendDamp

TRUE

FALSE

Dette er specifikt for den eksponentielle udjævningsmodel.

Hvis TRUE, skal du bruge dæmpet tendens. Hvis FALSE eller NULL, skal du bruge ikke-dæmpet tendens.

errorType

Ikke relevant

Dette er specifikt for den eksponentielle udjævningsmodel.
trendType

N (ingen)

A (additiv)

M (multiplikativ)

Z (valgt automatisk)

Dette er specifikt for den eksponentielle udjævningsmodel
seasonType

N (ingen)

A (additiv)

M (multiplikativ)

Z (valgt automatisk)

Dette er specifikt for den eksponentielle udjævningsmodel
modelParamIC

ic_auto

ic_aicc

ic_bic

ic_auto (dette er standarden)

Det oplysningskriterium (IC - Information Criterion), der bruges i modelvalget.

Konverteringsfunktioner

Konverteringsfunktioner konverterer en værdi fra et format til et andet.

Funktion Eksempel Beskrivelse Syntaks

CAST

CAST(hiredate AS CHAR(40)) FROM employee

Ændrer datatypen for et udtryk eller en NULL-litteral til en anden datatype. Du kan for eksempel ændre et kundenavn (datatypen CHAR eller VARCHAR) eller en fødselsdato (en datetime-litteral).

Brug CAST til at skifte til datatypen Dato.

Brug ikke TODATE.

CAST(expr AS type)

IFNULL

IFNULL(Sales, 0)

Afprøver, om et udtryk evalueres til en NULL-værdi, og tildeler i så fald den angivne værdi til udtrykket.

IFNULL(expr, value)

INDEXCOL

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

Bruger eksterne oplysninger til at returnere den relevante kolonne, som skal vises for den bruger, der er logget på.

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 udtryk. Hvis de er lig med hinanden, returnerer funktionen NULL. Hvis de ikke er lig med hinanden, returnerer funktionen det første udtryk. Du kan ikke angive litteral-NULL for det første udtryk.

NULLIF([expression], [expression])

To_DateTime

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

Konverterer strenglitteraler med formatet DateTime til en DateTime-datatype.

To_DateTime([expression], [literal])

VALUEOF

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

Refererer til værdien af en variabel for en semantisk model i et filter.

Brug expr-variabler som argumenter til funktionen VALUEOF. Referer til statiske variabler for semantiske modeller ved hjælp af deres navn.

VALUEOF(expr)

Funktioner til datoudtrækning

Disse funktioner beregner eller runder tidsstempelværdier ned til den nærmeste angivne tidsperiode, for eksempel time, dag, uge, måned og kvartal.

Du kan anvende de beregnede tidsstempler til at aggregere data ved hjælp af en anden detaljeringsgrad. Du kan for eksempel anvende funktionen EXTRACTDAY() på salgsordredatoer for at beregne et tidsstempel for midnat på den dag, hvor ordrer forekommer, så du kan aggregere dataene efter dag.

Funktion Eksempel Beskrivelse Syntaks

Udtræk dag

EXTRACTDAY("Order Date")
  • 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 midnat (12 AM) på den dag, hvor inputværdien forekommer. Hvis inputtidsstemplet for eksempel er for 3:02:01 AM den 22. februar, returnerer funktionen tidsstemplet for 12:00:00 AM den 22. februar.

EXTRACTDAY(expr)

Udtræk time

EXTRACTHOUR("Order Date")
  • 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 af den time, hvor inputværdien forekommer. Hvis inputtidsstemplet for eksempel er for 11:18:30 PM, returnerer funktionen tidsstemplet for 11:00:00 PM.

EXTRACTHOUR (expr)

Udtræk time på dag

EXTRACTHOUROFDAY("Order Date")
  • 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, hvor timen er lig med timen i inputværdien med standardværdier for år, måned, dag, minutter og sekunder.

EXTRACTHOUROFDAY(expr)

Udtræk millisekund

EXTRACTMILLISECOND("Order Date")
  • 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, der indeholder millisekunder for inputværdien. Hvis inputtidsstemplet for eksempel er for 15:32:02.150, returnerer funktionen tidsstemplet for 15:32:02.150.

EXTRACTMILLISECOND(expr)

Udtræk minut

EXTRACTMINUTE("Order Date")
  • 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 af det minut, hvor inputværdien forekommer. Hvis inputtidsstemplet for eksempel er for 11:38:21 AM, returnerer funktionen tidsstemplet for 11:38:00 AM.

EXTRACTMINUTE (expr)

Udtræk 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 dag i den måned, hvor inputværdien forekommer. Hvis inputtidsstemplet for eksempel er for 22. februar, returnerer funktionen tidsstemplet for 1. februar.

EXTRACTMONTH(expr)

Udtræk kvartal

EXTRACTQUARTER("Order Date")
  • 2/22/1967 3:02:01 AM returnerer 1/1/1967 12:00:00 AM, den første dag i det første regnskabskvartal.
  • 6/17/1999 11:18:00 PM returnerer 4/1/1999 12:00:00 AM, den første dag i det andet regnskabskvartal.

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

    Tip: Anvend QUARTER (expr) til kun at beregne kvartalets ordenstal fra det returnerede tidsstempel.

Returnerer et tidsstempel for den første dag i det kvartal, hvor inputværdien forekommer. Hvis inputtidsstemplet for eksempel forekommer i det tredje regnskabskvartal, returnerer funktionen tidsstemplet for 1. juli.

EXTRACTQUARTER(expr)

Udtræk sekund

EXTRACTSECOND("Order Date")
  • 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 inputværdien. Hvis inputtidsstemplet for eksempel er for 15:32:02.150, returnerer funktionen tidsstemplet for 15:32:02.

EXTRACTSECOND(expr)

Udtræk uge

EXTRACTWEEK("Order Date")
  • 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 dag i ugen (søndag), hvor inputværdien forekommer. Hvis inputtidsstemplet for eksempel er for onsdag den 24. september, returnerer funktionen tidsstemplet for søndag 21. september.

Bemærk: Hvis den første dag i ugen (dvs. søndag) falder i det foregående år og derfor vil påvirke aggregeringen, returnerer funktionen den 7. dag i ugen (dvs. lørdag) i indeværende år i stedet for den første dag i ugen i det foregående år. For eksempel aggregeres både 1/1/24, 1/2/24 og 1/3/24 til lørdag 1/6/24 i stedet for søndag 12/29/23.

EXTRACTWEEK(expr)

Udtræk år

EXTRACTYEAR("Order Date")
  • 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 i det år, hvor inputværdien forekommer. Hvis inputtidsstemplet for eksempel forekommer i 1967, returnerer funktionen tidsstemplet for 1. januar 1967.

EXTRACTYEAR (expr)

Tip til brug af datodimensioner i emneområder

Her er nogle tip til, hvordan du opnår de bedste resultater, når du bruger emneområdedatoer i beregninger.

Tilføjelse af en emneområdedato til en beregning

Hvis du trækker en dato fra et emneområde direkte til en beregning og behandler den som en streng eller et heltal, vises der en fejl. Det skyldes, at den underliggende datoværdi er et tidsstempel.

Brug i stedet en af de angivne Funktioner til datoudtrækning til at fortolke datoen.

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

Brug funktionen ExtractMonthOfYear til at udtrække måneder fra disse emneområdedatoer:

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

Visningsfunktioner

Visningsfunktioner bruges på resultatsættet af en forespørgsel.

Funktion Eksempel Beskrivelse Syntaks

BottomN

BottomN(Sales, 10)

Returnerer de n laveste værdier i udtrykket, fra laveste til højeste.

BottomN([NumericExpression], [integer])

FILTER

FILTER(Sales USING Product = 'widget')

Beregner udtrykket ved hjælp af det angivne præaggregeringsfilter.

FILTER(measure USING filter_expr)

MAVG

MAVG(Sales, 10)

Beregner et glidende gennemsnit (middel) for de sidste n rækker med data i resultatsættet, inklusive den aktuelle række.

MAVG([NumericExpression], [integer])

MSUM

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

Beregner en glidende sum for de sidste n rækker med data, inklusive den aktuelle række.

Summen for den første række er lig med det numeriske udtryk for den første række. Summen for den anden række beregnes som summen af de første to rækker med data osv. Når n. række er nået, beregnes summen baseret på de sidste n rækker med data.

MSUM([NumericExpression], [integer])

NTILE

NTILE(Sales, 100)

Bestemmer en værdis prioritering i et brugerdefineret interval. Den returnerer heltal, der repræsenterer et vilkårligt prioriteringsinterval. I eksemplet vises et interval fra 1 til 100, hvor laveste salg = 1 og højeste salg = 100.

NTILE([NumericExpresssion], [integer])

PERCENTILE

PERCENTILE(Sales)

Beregner en procentprioritering for hver værdi, der opfylder det numeriske udtryksargument. Prioriteringsintervallerne for percentiler er fra 0 (1. percentil) til 1 (100. percentil), begge inklusive.

PERCENTILE([NumericExpression])

RANK

RANK(Sales)

Beregner prioriteringen for hver værdi, der opfylder det numeriske udtryksargument. Det højeste tal tildeles prioriteringen 1, og hver efterfølgende prioritering tildeles det næste, fortløbende heltal (2, 3, 4,...). Hvis nogle værdier er lige store, får de tildelt samme prioritering (for eksempel 1, 1, 1, 4, 5, 5, 7...).

RANK([NumericExpression])

RCOUNT

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

Anvender et sæt records som input og optæller antallet af hidtil fundne records.

RCOUNT([NumericExpression])

RMAX

SELECT month, profit, RMAX(profit) FROM sales

Anvender et sæt records som input og viser maksimumværdien baseret på de hidtil fundne records. Datatypen, der angives, skal være en datatype, som kan sorteres.

RMAX([NumericExpression])

RMIN

SELECT month, profit, RMIN(profit) FROM sales

Anvender et sæt records som input og viser minimumværdien baseret på de hidtil fundne records. Datatypen, der angives, skal være en datatype, som kan sorteres.

RMIN([NumericExpression])

RSUM

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

Beregner en løbende sum baseret på de hidtil fundne records.

Summen for den første række er lig med det numeriske udtryk for den første række. Summen for den anden række beregnes som summen af de første to rækker med data osv.

RSUM([NumericExpression])

TOPN

TOPN(Sales, 10)

Returnerer de n højeste værdier i udtrykket, fra højeste til laveste.

TOPN([NumericExpression], [integer])

Tip til brug af visningsfunktioner

  • FILTER - Anvend hierarkier, der er defineret i emneområdet, i stedet for at filtrere hierarkikolonner direkte i en beregning, hvis du bygger en rapport ved hjælp af et emneområde. Du skal med andre ord undgå følgende, hvis et emneområde har et hierarki for Tid\Regnskabsår\Regnskabskvartal:

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

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

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

Evalueringsfunktioner

Evalueringsfunktioner er databasefunktioner, som kan bruges til at videregive udtryk for at opnå avancerede beregninger.

Indlejrede databasefunktioner kan kræve en eller flere kolonner. Der refereres til disse kolonner som %1 ... %N i funktionen. De faktiske kolonner skal angives efter funktionen.

Funktion Eksempel Beskrivelse Syntaks

EVALUATE

SELECT EVALUATE('instr(%1, %2)', adresse, 'Fødeby') FROM employees

Videresender den angivne databasefunktion med valgfri refererede kolonner som parametre til evaluering i databasen.

EVALUATE([strengudtryk], [kommaseparerede udtryk])

EVALUATE_AGGR

EVALUATE_AGGR('REGR_SLOPE(%1, %2)', salg.mængde, marked.markedsnøgle)

Videresender den angivne databasefunktion med valgfri refererede kolonner som parametre til evaluering i databasen. Denne funktion er beregnet til aggregeringsfunktioner med en GROUP BY-klausul.

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

Matematiske funktioner

De matematiske funktioner, der er beskrevet i dette afsnit, udfører matematiske operationer.

Funktion Eksempel Beskrivelse Syntaks

ABS

ABS(Profit)

Beregner den absolutte værdi af et numerisk udtryk.

expr er ethvert udtryk, der evalueres til en numerisk værdi.

ABS(expr)

ACOS

ACOS(1)

Beregner arcus cosinus af et numerisk udtryk.

expr er ethvert udtryk, der evalueres til en numerisk værdi.

ACOS(expr)

ASIN

ASIN(1)

Beregner arcus sinus af et numerisk udtryk.

expr er ethvert udtryk, der evalueres til en numerisk værdi.

ASIN(expr)

ATAN

ATAN(1)

Beregner arcus tangens af et numerisk udtryk.

expr er ethvert udtryk, der evalueres til en numerisk værdi.

ATAN(expr)

ATAN2

ATAN2(1, 2)

Beregner arcus tangens af y /x, hvor y er det første numeriske udtryk, og x er det andet numeriske udtryk.

ATAN2(expr1, expr2)

CEILING

CEILING(Profit)

Afrunder et numerisk udtryk, som ikke er et heltal, til det næste større heltal. Hvis det numeriske udtryk evalueres til et heltal, returnerer funktionen CEILING dette heltal.

CEILING(expr)

COS

COS(1)

Beregner cosinus af et numerisk udtryk.

expr er ethvert udtryk, der evalueres til en numerisk værdi.

COS(expr)

COT

COT(1)

Beregner cotangens af et numerisk udtryk.

expr er ethvert udtryk, der evalueres til en numerisk værdi.

COT(expr)

DEGREES

DEGREES(1)

Konverterer et udtryk fra radianer til grader.

expr er ethvert udtryk, der evalueres til en numerisk værdi.

DEGREES(expr)

EXP

EXP(4)

Opløfter værdien til den angivne potens. Beregner e opløftet i n'te potens, hvor e er grundtallet for den naturlige logaritme.

EXP(expr)

ExtractBit

Int ExtractBit(1, 5)

Henter en bit på en bestemt position i et heltal. Den returnerer enten heltallet 0 eller 1 alt efter bittens position.

ExtractBit([Kildetal], [Antal cifre])

FLOOR

FLOOR(Profit)

Afrunder et numerisk udtryk, som ikke er et heltal, til det næste mindre heltal. Hvis det numeriske udtryk evalueres til et heltal, returnerer funktionen FLOOR dette heltal.

FLOOR(expr)

LOG

LOG(1)

Beregner den naturlige logaritme af et udtryk.

expr er ethvert udtryk, der evalueres til en numerisk værdi.

LOG(expr)

LOG10

LOG10(1)

Beregner grundtal 10-logaritmen af et udtryk.

expr er ethvert udtryk, der evalueres til en numerisk værdi.

LOG10(expr)

MOD

MOD(10, 3)

Dividerer det første numeriske udtryk med det andet numeriske udtryk og returnerer den resterende del af kvotienten.

MOD(expr1, expr2)

PI

PI()

Returnerer den konstante værdi af pi.

PI()

POWER

POWER(Profit, 2)

Tager det første numeriske udtryk og opløfter det i den potens, der er angivet i det andet numeriske udtryk.

POWER(expr1, expr2)

RADIANS

RADIANS(30)

Konverterer et udtryk fra grader til radianer.

expr er ethvert udtryk, der evalueres til en numerisk værdi.

RADIANS(expr)

RAND

RAND()

Returnerer et pseudo-vilkårligt tal mellem 0 og 1.

RAND()

RANDFromSeed

RAND(2)

Returnerer et pseudo-vilkårligt tal baseret på en udfyldt værdi. For en given udfyldt værdi genereres det samme sæt af vilkårlige tal.

RAND(expr)

ROUND

ROUND(2.166000, 2)

Afrunder et numerisk udtryk til n antal cifres præcision.

expr er ethvert udtryk, der evalueres til en numerisk værdi.

integer er ethvert positivt heltal, der repræsenterer antallet af cifres nøjagtighed.

ROUND(expr, integer)

SIGN

SIGN(Profit)

Returnerer følgende:

  • 1, hvis det numeriske udtryk evalueres til et positivt tal

  • -1, hvis det numeriske udtryk evalueres til et negativt tal

  • 0, hvis det numeriske udtryk evalueres til nul

SIGN(expr)

SIN

SIN(1)

Beregner sinus af et numerisk udtryk.

SIN(expr)

SQRT

SQRT(7)

Beregner kvadratroden af det numeriske udtryksargument. Det numeriske udtryk skal evalueres til et tal, der ikke er negativt.

SQRT(expr)

TAN

TAN(1)

Beregner tangensen af et numerisk udtryk.

expr er ethvert udtryk, der evalueres til en numerisk værdi.

TAN(expr)

TRUNCATE

TRUNCATE(45.12345, 2)

Afkorter et decimaltal og returnerer et bestemt antal pladser fra decimalpunktet.

expr er ethvert udtryk, der evalueres til en numerisk værdi.

integer er ethvert positivt heltal, der repræsenterer det antal tegn til højre for decimalpladsen, som skal returneres.

TRUNCATE(expr, integer)

Løbende aggregeringsfunktioner

Løbende aggregeringsfunktioner udfører operationer på flere værdier for at oprette opsummerende resultater.

Funktion Eksempel Beskrivelse Syntaks

MAVG

 

Beregner et glidende gennemsnit (middel) for de sidste n rækker med data i resultatsættet, inklusive den aktuelle række.

expr er ethvert udtryk, der evalueres til en numerisk værdi. integer er ethvert positivt heltal. Repræsenterer gennemsnittet af de sidste n rækker 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 sidste n rækker med data, inklusive den aktuelle række.

expr er ethvert udtryk, der evalueres til en numerisk værdi. integer er ethvert positivt heltal. Repræsenterer summen af de sidste n rækker med data.

MSUM(expr, integer)

RSUM

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

Beregner en løbende sum baseret på de hidtil fundne records.

expr er ethvert udtryk, der evalueres til en numerisk værdi.

RSUM(expr)

RCOUNT

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

Anvender et sæt records som input og optæller antallet af hidtil fundne records.

expr er et udtryk af enhver datatype.

RCOUNT(expr)

RMAX

SELECT month, profit,RMAX(profit) from sales_subject_area

Anvender et sæt records som input og viser maksimumværdien baseret på de hidtil fundne records.

expr er et udtryk af enhver datatype.

RMAX(expr)

RMIN

select month, profit,RMIN(profit) from sales_subject_area

Anvender et sæt records som input og viser minimumværdien baseret på de hidtil fundne records.

expr er et udtryk af enhver datatype.

RMIN(expr)

Spatiale funktioner

Spatiale funktioner gør det muligt for dig at udføre geografiske analyser, når du modellerer data. Du kan for eksempel beregne afstanden mellem to geografiske områder (der kaldes figurer eller polygoner).

Bemærk:

Du kan ikke bruge disse spatiale funktioner i tilpassede beregninger til visualiseringsprojektmapper.
Funktion Eksempel Beskrivelse Syntaks
GeometryArea

GeometryArea(Shape)

Beregner det område, som en figur dækker.

GeometryArea(Shape)

GeometryDistance

GeometryDistance(TRIP_START, TRIP_END)

Beregner afstanden mellem to figurer.

GeometryDistance(Shape 1, Shape 2)

GeometryLength

GeometryLength(Shape)

Beregner en figurs omkreds.

GeometryLength(Shape)

GeometryRelate

GeometryRelate(TRIP_START, TRIP_END)

Bestemmer, om en figur befinder sig inde i en anden figur. Returnerer TRUE eller FALSE som en streng (varchar).

GeometryRelate(Shape 1, Shape 2)

GeometryWithinDistance

GeometryWithinDistance(TRIP_START, TRIP_END, 500)

Bestemmer, om to figurer befinder sig inden for en angivet afstand af hinanden. Returnerer TRUE eller FALSE som en streng (varchar).

GeometryWithinDistance(Shape1, Shape2, DistanceInFloat)

Strengfunktioner

Strengfunktioner udfører forskellige tegnmanipulationer. De virker på tegnstrenge.

Funktion Eksempel Beskrivelse Syntaks

ASCII

ASCII('a')

Konverterer en enkelt tegnstreng til den tilsvarende ASCII-kode mellem 0 og 255. Hvis tegnudtrykket evalueres til flere tegn, returneres den ASCII-kode, der svarer til det første tegn i udtrykket.

expr er ethvert udtryk, der evalueres til en tegnstreng.

ASCII(expr)

BIT_LENGTH

BIT_LENGTH('abcdef')

Returnerer længden i bit af en angivet streng. Hvert Unicode-tegn er 2 byte langt (lig med 16 bit).

expr er ethvert udtryk, der evalueres til en tegnstreng.

BIT_LENGTH(expr)

CHAR

CHAR(35)

Konverterer en numerisk værdi mellem 0 og 255 til den tegnværdi, der svarer til ASCII-koden.

expr er ethvert udtryk, der evalueres til en numerisk værdi mellem 0 og 255.

CHAR(expr)

CHAR_LENGTH

CHAR_LENGTH(Customer_Name)

Returnerer længden i antal tegn på en angivet streng. Foran- og efterstillede blanktegn tælles ikke med i strengens længde.

expr er ethvert udtryk, der evalueres til en tegnstreng.

CHAR_LENGTH(expr)

CONCAT

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

Sammenkæder to tegnstrenge.

exprs er udtryk, der evalueres til tegnstrenge, som er adskilt af kommaer.

Du skal bruge rå data, ikke formaterede data, sammen med CONCAT.

CONCAT(expr1, expr2)

INSERT

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

Indsætter en angivet tegnstreng på en angivet lokation i en anden tegnstreng.

expr1 er ethvert udtryk, der evalueres til en tegnstreng. Identificerer måltegnstrengen.

integer1 er ethvert positivt heltal, som repræsenterer antallet af tegn fra starten af den målstreng, hvor den anden streng skal indsættes.

integer2 er ethvert positivt heltal, der repræsenterer antallet af tegn i den målstreng, som skal erstattes af den anden streng.

expr2 er ethvert udtryk, der evalueres til en tegnstreng. Identificerer den tegnstreng, der skal indsættes i målstrengen.

INSERT(expr1, integer1, integer2, expr2)

LEFT

SELECT LEFT('123456', 3) FROM table

Returnerer et angivet antal tegn fra den venstre ende af en streng.

expr er ethvert udtryk, der evalueres til en tegnstreng.

integer er ethvert positivt heltal, der repræsenterer antallet af tegn fra venstre i den streng, som skal returneres.

LEFT(expr, integer)

LENGTH

LENGTH(Customer_Name)

Returnerer længden i antal tegn på en angivet streng. Længden returneres ved at udelade efterstillede blanktegn.

expr er ethvert udtryk, der evalueres til en tegnstreng.

LENGTH(expr)

LOCATE

LOCATE('d' 'abcdef')

Returnerer den numeriske position af en tegnstreng i en anden tegnstreng. Hvis tegnstrengen ikke findes i den streng, der søges i, returnerer funktionen værdien 0.

expr1 er ethvert udtryk, der evalueres til en tegnstreng. Identificerer den streng, der skal søges efter.

expr2 er ethvert udtryk, der evalueres til en tegnstreng.

Identificerer den streng, der skal søges efter.

LOCATE(expr1, expr2)

LOCATEN

LOCATEN('d' 'abcdef', 3)

Returnerer, ligesom LOCATE, den numeriske position af en tegnstreng i en anden tegnstreng. LOCATEN inkluderer et heltalsargument, som du kan bruge til at angive en startposition for søgningen.

expr1 er ethvert udtryk, der evalueres til en tegnstreng. Identificerer den streng, der skal søges efter.

expr2 er ethvert udtryk, der evalueres til en tegnstreng. Identificerer den streng, der skal søges efter.

integer er ethvert positivt (ikke-nul) heltal, der repræsenterer den startposition, hvor søgningen efter tegnstrengen begynder.

LOCATEN(expr1, expr2, integer)

LOWER

LOWER(Customer_Name)

Konverterer en tegnstreng til små bogstaver.

expr er ethvert udtryk, der evalueres til en tegnstreng.

LOWER(expr)

OCTET_LENGTH

OCTET_LENGTH('abcdef')

Returnerer antallet af byte i en angivet streng.

expr er ethvert udtryk, der evalueres til en tegnstreng.

OCTET_LENGTH(expr)

POSITION

POSITION('d', 'abcdef')

Returnerer den numeriske position af strExpr1 i et tegnudtryk. Hvis strExpr1 ikke findes, returnerer funktionen 0.

expr1 er ethvert udtryk, der evalueres til en tegnstreng. Identificerer den streng, der skal søges efter i målstrengen. For eksempel 'd'.

expr2 er ethvert udtryk, der evalueres til en tegnstreng. Identificerer den målstreng, der skal søges efter. For eksempel 'abcdef'.

POSITION(expr1, expr2)

REPEAT

REPEAT('abc', 4)

Gentager et angivet udtryk n antal gange.

expr er ethvert udtryk, der evalueres til en tegnstreng.

integer er ethvert positivt heltal, der repræsenterer det antal gange, tegnstrengen skal gentages.

REPEAT(expr, integer)

REPLACE

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

Erstatter et eller flere tegn fra et bestemt tegnudtryk med et eller flere andre tegn.

expr1 er ethvert udtryk, der evalueres til en tegnstreng. Dette er den streng, hvor tegn skal erstattes.

expr2 er ethvert udtryk, der evalueres til en tegnstreng. Den anden streng identificerer de tegn fra den første streng, som skal erstattes.

expr3 er ethvert udtryk, der evalueres til en tegnstreng. Den tredje streng identificerer de tegn, som skal erstattes ind i den første streng.

REPLACE(expr1, expr2, expr3)

RIGHT

SELECT RIGHT('123456', 3) FROM table

Returnerer et angivet antal tegn fra den højre ende af en streng.

expr er ethvert udtryk, der evalueres til en tegnstreng.

integer er ethvert positivt heltal, der repræsenterer antallet af tegn fra højre af den streng, som skal returneres.

RIGHT(expr, integer)

SPACE

SPACE(2)

Indsætter tomme mellemrum.

integer er ethvert positivt heltal, som angiver det antal mellemrum, der skal indsættes.

SPACE(expr)

SUBSTRING

SUBSTRING('abcdef' FROM 2)

Opretter en ny streng med start fra et fast antal tegn i den oprindelige streng.

expr er ethvert udtryk, der evalueres til en tegnstreng.

startPos er ethvert positivt heltal, der repræsenterer antallet af tegn fra starten af venstre side af den streng, hvor resultatet skal begynde.

SUBSTRING([SourceString] FROM [StartPostition])

SUBSTRINGN

SUBSTRING('abcdef' FROM 2 FOR 3)

Opretter, ligesom SUBSTRING, en ny streng med start fra et fast antal tegn i den oprindelige streng.

SUBSTRINGN inkluderer et heltalsargument, som du kan bruge til at angive længden af den nye streng i antal tegn.

expr er ethvert udtryk, der evalueres til en tegnstreng.

startPos er ethvert positivt heltal, der repræsenterer antallet af tegn fra starten af venstre side af den streng, hvor resultatet skal begynde.

SUBSTRING(expr FROM startPos FOR length)

TrimBoth

Trim(BOTH '_' FROM '_abcdef_')

Udelader angivne foranstillede og efterstillede tegn fra en tegnstreng.

char er ethvert enkelt tegn. Hvis du udelader denne angivelse (og de påkrævede enkelte anførselstegn), bruges der et blanktegn som standard.

expr er ethvert udtryk, der evalueres til en tegnstreng.

TRIM(BOTH char FROM expr)

TRIMLEADING

TRIM(LEADING '_' FROM '_abcdef')

Udelader angivne foranstillede tegn fra en tegnstreng.

char er ethvert enkelt tegn. Hvis du udelader denne angivelse (og de påkrævede enkelte anførselstegn), bruges der et blanktegn som standard.

expr er ethvert udtryk, der evalueres til en tegnstreng.

TRIM(LEADING char FROM expr)

TRIMTRAILING

TRIM(TRAILING '_' FROM 'abcdef_')

Udelader angivne efterfølgende tegn fra en tegnstreng.

char er ethvert enkelt tegn. Hvis du udelader denne angivelse (og de påkrævede enkelte anførselstegn), bruges der et blanktegn som standard.

expr er ethvert udtryk, der evalueres til en tegnstreng.

TRIM(TRAILING char FROM expr)

UPPER

UPPER(Customer_Name)

Konverterer en tegnstreng til store bogstaver.

expr er ethvert udtryk, der evalueres til en tegnstreng.

UPPER(expr)

Tip til brug af strengfunktioner

Her er nogle tip til, hvordan du opnår de bedste resultater, når du bruger strengfunktioner i dine projektmapper.

Sammenkæd flere værdier:

Brug LISTAGG til at sammenkæde flere værdier til én celle og én række.

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

Tilføj on overflow truncate, hvis den resulterende streng er for lang, og tilføj distinct, hvis værdierne ikke er entydige.

Eksempel:

listagg(distinct City_ID by STATE on overflow truncate)

Systemfunktioner

Systemfunktionen USER returnerer værdier, der relaterer sig til sessionen. For eksempel det brugernavn, som du er logget på med.

Funktion Eksempel Beskrivelse Syntaks

DATABASE

 

Returnerer navnet på det emneområde, som du er logget på.

DATABASE()

USER

 

Returnerer brugernavnet for den semantiske model, som du er logget på.

USER()

Tidsseriefunktioner

Med tidsseriefunktioner kan du aggregere og beregne data baseret på tidsdimensioner. Du kan for eksempel bruge AGO-funktionen til at beregne indtægt fra for et år siden.

Medlemmer af tidsdimensionen skal være på eller under funktionens niveau. Derfor skal en eller flere kolonner, der entydigt identificerer medlemmer på eller under det givne niveau, angives i forespørgslen.

Funktion Eksempel Beskrivelse Syntaks

AGO

SELECT Year_ID, AGO(sales, year, 1)

Beregner den aggregerede værdi af en måling i en angivet tidsperiode i fortiden. Brug for eksempel AGO(Revenue, Year, 1, SHIP_MONTH) for at beregne månedlig indtægt for et år siden. Brug AGO(Revenue, Quarter, 1) for at beregne kvartalsvise indtægter i det sidste kvartal.

AGO(MEASURE, TIME_LEVEL, OFFSET)

Hvor:

  • MEASURE repræsenterer den måling, der skal beregnes, for eksempel indtægt.
  • TIME_LEVEL repræsenterer tidsintervallet, som skal være År, Kvartal, Måned, Uge eller Dag.
  • OFFSET repræsenterer det antal tidsintervaller, der skal beregnes tilbage til, for eksempel 1 for ét år.

PERIODROLLING

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

Beregner aggregatet af en måling for perioden, der starter x antal tidsenheder før og slutter y antal tidsenheder efter det aktuelle tidspunkt. PERIODROLLING kan for eksempel beregne salget for en periode, der starter et kvartal før og slutter et kvartal efter indeværende kvartal.

PERIODROLLING(measure, x [,y])

Hvor:

  • MEASURE repræsenterer navnet på en målingskolonne.
  • X er et heltal, der repræsenterer forskydningen fra det aktuelle tidspunkt.
  • Y er et heltal, der repræsenterer det antal tidsenheder, hvor funktionen foretager beregninger.
  • HIERARCHY er et valgfrit argument, der repræsenterer navnet på et hierarki i en tidsdimension, for eksempel YR, MON, DAY, som du vil bruge til at beregne tidsvinduet.

TODATE

SELECT Year_ID, Month_ID, TODATE (sales, year)

Beregner den aggregerede værdi af en måling fra starten af en tidsperiode til den seneste tidsperiode, for eksempel år-til-dato-beregninger.

Brug TODATE(sales, year), hvis du for eksempel vil beregne salget for året til dato.

TODATE(MEASURE, TIME_LEVEL)

Hvor:

  • MEASURE repræsenterer et udtryk, der refererer til mindst én målingskolonne, for eksempel salg.
  • TIME_LEVEL repræsenterer tidsintervallet, som skal være År, Kvartal, Måned, Uge eller Dag.