Funktioner

Det finns olika typer av funktioner som du kan använda i uttryck.

Avsnitt:

Analytiska funktioner

Med analysfunktioner kan du utforska data med modeller som prognoser, trendlinjer och kluster. Du kan också dra och släppa analysfunktioner till arbetsboksredigeraren.

Du kan också lägga till prognoser, trendlinjer och kluster i en arbetsbok genom att välja dem från fliken Analys på datapanelen i arbetsboksredigeraren. Se Lägga till funktioner för statistisk analys i visualiseringar.

Funktion Exempel Beskrivning Syntax

CLUSTER

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

Samlar en uppsättning poster i grupper baserat på en eller flera indatauttryck med K-Means eller hierarkisk klustring.

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

FORECAST

Exempel på intäktsprognos per dag

I exemplet väljs intäktsprognos per dag.

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

Exempel på intäktsprognos per år och kvartal

I exemplet väljs intäktsprognos per år och 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

Skapar en tidsseriemodell för det angivna måttet över serien med exponentiell utjämning (ETS) eller säsongs-ARIMA eller ARIMA. Den här funktionen tillhandahåller utdata i form av en prognos för en uppsättning perioder som angetts av argumentet numPeriods.

Se fler alternativ för funktionen FORECAST nedan.

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

Där:

  • measure representerar måttet som ska prognostiseras, till exempel intäktsdata.

  • series representerar detaljnivån gällande tid som ska användas i prognosmodellen. Serien är en lista över en eller flera tidsdimensionskolumner. Om du utelämnar serien bestäms tidsdetaljnivån utifrån frågan.

  • output_column_name representerar de giltiga kolumnnamnen för forecast, low, high och predictionInterval.

  • options representerar en stränglista med namn/värde-par avgränsade med semikolon (;). Värdet kan inkludera %1 ... %N som anges i runtime_binded_options.

  • runtime_binded_options representerar en kommaavgränsad lista med kolumner och alternativ. Värden för dessa kolumner och alternativ utvärderas och bestäms under exekveringstiden för den individuella frågan.

Se fler alternativ för funktionen FORECAST nedan.

OUTLIER

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

Klassificerar en post som ett extremvärde baserat på ett eller flera indatauttryck med K-Means, hierarkisk klustring eller algoritmer för identifiering av multivariabla extremvärden.

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

REGR

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

Anpassas till en linjär modell och returnerar anpassade värden eller den anpassade modellen. Den här funktionen kan användas till att passa in en linjär kurva över två mått.

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 rekommenderar att du använder en trendlinje med hjälp av egenskapen Lägg till statistik när du visar en visualisering. Se Justera visualiseringsegenskaper.

Anpassas till en linjär, polynomisk eller exponentiell modell och returnerar anpassade värden eller anpassad modell. numeric_expr representerar Y-värdet för trenden och series (tidskolumner) representerar X-värdet.

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

Alternativ för funktionen FORECAST I följande tabell visas de alternativ du kan använda med funktionen FORECAST.

Alternativnamn Värden Beskrivning
numPeriods Heltal Antalet perioder för prognostisering.
predictionInterval 0 till 100, där högre värden anger högre konfidens Konfidensnivån för prognosen.
modelType

ETS (exponentiell utjämning)

SeasonalArima

ARIMA

Den modell som ska användas för prognostisering.
useBoxCox

TRUE

FALSE

Om TRUE, använd Box-Cox-transformering.
lambdaValue Inte tillämpligt

Parametern för Box-Cox-transformering.

Ignorera om NULL eller om useBoxCox är FALSE.

I annat fall transformeras data innan modellen beräknas.

trendDamp

TRUE

FALSE

Det här gäller specifikt för modellen för exponentiell utjämning.

Om TRUE, använd dämpad trend. Om FALSE eller NULL, använd icke-dämpad trend.

errorType

Inte tillämpligt

Det här gäller specifikt för modellen för exponentiell utjämning.
trendType

N (ingen)

A (additiv)

M (multiplikativ)

Z (väljs automatiskt)

Det här gäller specifikt för modellen för exponentiell utjämning
seasonType

N (ingen)

A (additiv)

M (multiplikativ)

Z (väljs automatiskt)

Det här gäller specifikt för modellen för exponentiell utjämning
modelParamIC

ic_auto

ic_aicc

ic_bic

ic_auto (det här är standardvärdet)

Det informationskriterium (IC) som används i modellurvalet.

Konverteringsfunktioner

Med konverteringsfunktioner kan du konvertera ett värde från ett formulär till ett annat.

Funktion Exempel Beskrivning Syntax

CAST

CAST(hiredate AS CHAR(40)) FROM employee

Ändrar datatypen i ett uttryck eller en null-litteral till en annan datatyp. Du kan till exempel typkonvertera ett customer_name (datatypen CHAR eller VARCHAR) eller birthdate (en datetime-litteral).

Använd CAST för att ändra till datatypen Date.

Använd inte TODATE.

CAST(expr AS type)

IFNULL

IFNULL(Sales, 0)

Testar om ett uttryck beräknas till ett nullvärde och om så sker tilldelas uttrycket det givna värdet.

IFNULL (expr, value)

INDEXCOL

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

Här används extern information för att returnera rätt kolumn för att visa den inloggade användaren.

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

Jämför två uttryck. Om de är lika returnerar funktionen NULL. Om de inte är lika kommer funktionen att returnera det första uttrycket. Du kan inte ange litteralen NULL för det första uttrycket.

NULLIF([expression], [expression])

To_DateTime

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

Konverterar stränglitteraler i formatet DateTime till datatypen DateTime.

To_DateTime([expression], [literal])

VALUEOF

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

Refererar till värdet för en semantisk modellvariabel i ett filter.

Använd expr-variabler som argument för funktionen VALUEOF. Refererar till statiska semantiska modellvariabler med namn.

VALUEOF(expr)

Funktioner för datumextrahering

Dessa funktioner beräknar eller avrundar tidsstämpelsvärden nedåt till närmaste angivna tidsperiod, till exempel timme, dag, vecka, månad och kvartal.

Du kan använda de beräknade tidsstämplarna till att aggregera data med en annan detaljnivå. Du kan till exempel använda funktionen EXTRACTDAY() på kundorderdatum för att beräkna en tidsstämpel för midnatt dagen när ordern sker så att du kan aggregera data per dag.

Funktion Exempel Beskrivning Syntax

Extrahera dag

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

Returnerar en tidsstämpel för midnatt (12 AM) den dag på vilken indatavärdet inträffar. Om indatatidsstämpeln till exempel är för 3:02:01 AM den 22 februari returnerar funktionen tidsstämpeln för 12:00:00 AM den 22 februari.

EXTRACTDAY(expr)

Extrahera timme

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

Returnerar en tidsstämpel för början på den timme under vilken indatavärdet inträffar. Om indatatidsstämpeln till exempel är 11:18:30 PM returnerar funktionen tidsstämpeln 11:00:00 PM.

EXTRACTHOUR (expr)

Extrahera timme på dagen

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

Returnerar en tidsstämpel där timmen motsvarar timmen för indatavärdet med standardvärden för år, månad, dag, minut och sekund.

EXTRACTHOUROFDAY(expr)

Extrahera millisekund

EXTRACTMILLISECOND("Order Date")
  • 1997/01/07 15:32:02.150 returnerar 1997/01/07 15:32:02.150.
  • 1997/01/07 18:42:01.265 returnerar 1997/01/07 18:42:01.265.
Returnerar en tidsstämpel som innehåller millisekunder för indatavärdet. Om indatatidsstämpeln till exempel är 15:32:02.150 returnerar funktionen tidsstämpeln 15:32:02.150.

EXTRACTMILLISECOND(expr)

Extrahera minut

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

Returnerar en tidsstämpel för början på den minut under vilken indatavärdet inträffar. Om indatatidsstämpeln till exempel är 11:38:21 AM returnerar funktionen tidsstämpeln 11:38:00 AM.

EXTRACTMINUTE (expr)

Extrahera månad

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

Returnerar en tidsstämpel för den första dagen i månaden under vilken indatavärdet inträffar. Om indatatidsstämpeln till exempel är för den 22 februari returnerar funktionen tidsstämpeln den 1 februari.

EXTRACTMONTH(expr)

Extrahera kvartal

EXTRACTQUARTER("Order Date")
  • 2/22/1967 3:02:01 AM returnerar 1/1/1967 12:00:00 AM, som är den första dagen i det första räkenskapskvartalet.
  • 6/17/1999 11:18:00 PM returnerar 4/1/1999 12:00:00 AM, som är den första dagen i det andra räkenskapskvartalet.

  • 9/2/2022 10:38:21 AM returnerar 7/1/2022 12:00:00 AM, som är den första dagen i det tredje räkenskapskvartalet.

    Tips: Använd QUARTER (expr) om du bara vill beräkna kvartalets ordningsnummer från den tidsstämpel som returneras.

Returnerar en tidsstämpel för den första dagen i kvartalet under vilken indatavärdet inträffar. Om indatatidsstämpeln till exempel infaller inom det tredje räkenskapskvartalet returnerar funktionen tidsstämpeln för den 1 juli.

EXTRACTQUARTER(expr)

Extrahera sekund

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

Returnerar en tidsstämpel för indatavärdet. Om indatatidsstämpeln till exempel är 15:32:02.150 returnerar funktionen tidsstämpeln 15:32:02.

EXTRACTSECOND(expr)

Extrahera vecka

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

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

Returnerar datumet för den första dagen i veckan (söndag) under vilket indatavärdet inträffar. Om indatatidsstämpeln till exempel är för onsdagen den 24 september returnerar funktionen tidsstämpeln för söndagen den 21 september.

Obs! Om den första dagen i en vecka (dvs. söndag) infaller under ett föregående år och därför skulle påverka aggregeringen negativt returnerar funktionen veckans sjunde dag (dvs. lördag) innevarande år istället för första dagen i veckan föregående år. Till exempel aggregeras 2024-01-01, 2024-01-02 och 2024-01-03 alla till lördagen den 6 januari 2024 istället för söndagen den 29 december 2023.

EXTRACTWEEK(expr)

Extrahera år

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

Returnerar en tidsstämpel för den 1 januari det år när indatavärdet inträffar. Om indatatidsstämpeln till exempel infaller år 1967 returnerar funktionen tidsstämpeln för den 1 januari 1967.

EXTRACTYEAR (expr)

Tips om att använda datumdimensioner i ämnesområden

Här är några tips m hur du får bästa möjliga resultat när du använder datum för ämnesområden i beräkningar.

Lägga till ett datum för ett ämnesområde i en beräkning

Om du drar ett datum från ett ämnesområdet direkt till en beräkning och bearbetar det som en sträng eller ett heltal inträffar ett fel. Det beror på att det underliggande datumvärdet är en tidsstämpel.

Använd i stället en av Funktioner för datumextrahering till att tolka datumet.

Du kan till exempel ha de här ämnesområdesdatumen.
Beskrivning av GUID-39C55B3A-A055-45D3-9904-948680247C08-default.png följer
.png

Om du vill extrahera månader från ämnesområdesdatumen använder du funktionen ExtractMonthOfYear:

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

Visningsfunktioner

Visningsfunktioner används på resultatuppsättningen för en fråga.

Funktion Exempel Beskrivning Syntax

BottomN

BottomN(Sales, 10)

Returnerar de n lägsta värdena i uttrycket, rankade från lägsta till högsta.

BottomN([NumericExpression], [integer])

FILTER

FILTER(Sales USING Product = 'widget')

Beräknar uttrycket med angivet föraggregeringsfilter.

FILTER(measure USING filter_expr)

MAVG

MAVG(Sales, 10)

Beräknar ett glidande medelvärde för de n sista dataraderna i resultatuppsättningen, inklusive aktuell rad.

MAVG([NumericExpression], [integer])

MSUM

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

Beräknar en glidande summa för de n sista dataraderna, inklusive aktuell rad.

Summan för den första raden är lika med det numeriska uttrycket för den första raden. Summan för den andra raden beräknas genom att ta summan av de första två dataraderna osv. När den n:e raden nås beräknas summan baserat på de n sista dataraderna.

MSUM([NumericExpression], [integer])

NTILE

NTILE(Sales, 100)

Fastställer ett värdes rankning i form av ett användardefinierat intervall. Den returnerar heltal som representerar rankningsintervallen. Exemplet visar ett intervall från 1 till 100, där den lägsta försäljningen = 1 och den högsta försäljningen = 100.

NTILE([NumericExpresssion], [integer])

PERCENTILE

PERCENTILE(Sales)

Beräknar en procentuell rankning för de värden som uppfyller argumentet till det numeriska uttrycket. Intervallet för den procentuella rankningen går från 0 (1:a percentilen) till 1 (100:e percentilen).

PERCENTILE([NumericExpression])

RANK

RANK(Sales)

Beräknar rankningen för de värden som uppfyller argumentet till det numeriska uttrycket. Det högsta värdet rankas som nummer 1 och varje följande värde rankas med nästföljande heltal (2, 3, 4...). Om vissa värden är lika tilldelas de samma rangordning (till exempel 1, 1, 1, 4, 5, 5, 7...).

RANK([NumericExpression])

RCOUNT

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

Tar en uppsättning poster som indata och räknar antalet påträffade poster.

RCOUNT([NumericExpression])

RMAX

SELECT month, profit, RMAX(profit) FROM sales

Tar en uppsättning poster som indata och visar maximivärdet av påträffade poster. Den angivna datatypen måste vara en typ som kan sorteras.

RMAX([NumericExpression])

RMIN

SELECT month, profit, RMIN(profit) FROM sales

Tar en uppsättning poster som indata och visar minimivärdet av påträffade poster. Den angivna datatypen måste vara en typ som kan sorteras.

RMIN([NumericExpression])

RSUM

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

Beräknar en löpande summa baserad på påträffade poster.

Summan för den första raden är lika med det numeriska uttrycket för den första raden. Summan för den andra raden beräknas genom att ta summan av de första två dataraderna osv.

RSUM([NumericExpression])

TOPN

TOPN(Sales, 10)

Returnerar de n högsta värdena i uttrycket, rankade från högsta till lägsta.

TOPN([NumericExpression], [integer])

Tips om hur du använder visningsfunktioner

  • FILTER – om du skapar en rapport med ett ämnesområde kan du använda de hierarkier som är definierade för ämnesområdet snarare än att filtrera hierarkikolumnerna direkt i beräkningen. Om ett ämnesområde har hierarkin Tid\Räkenskapsår\Räkenskapskvartal ska du till exempel undvika följande:

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

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

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

Utvärderingsfunktioner

Utvärderingsfunktioner är databasfunktioner som kan användas för att passera genom uttryck för avancerade beräkningar.

Inbäddade databasfunktioner kan kräva en eller flera kolumner. Dessa kolumner refereras av %1 - %N inom funktioner. De faktiska kolumnerna måste listas efter funktionen.

Funktion Exempel Beskrivning Syntax

EVALUATE

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

Går igenom den angivna databasfunktionen med valfria refererade kolumner som parametrar till databasen för utvärdering.

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

EVALUATE_AGGR

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

Går igenom den angivna databasfunktionen med valfria refererade kolumner som parametrar till databasen för utvärdering. Den här funktionen är avsedd för aggregeringsfunktioner med en GROUP BY-sats.

EVALUATE_AGGR('db_agg_function(%1...%N)' [AS datatype] [, kolumn1, kolumnN])

Matematiska funktioner

De matematiska funktioner som beskrivs i den här sektionen utför matematiska beräkningar.

Funktion Exempel Beskrivning Syntax

ABS

ABS(Profit)

Beräknar absolutbeloppet för ett numeriskt uttryck.

expr är ett uttryck som utvärderas till ett numeriskt värde.

ABS(expr)

ACOS

ACOS(1)

Beräknar arcus cosinus för ett numeriskt uttryck.

expr är ett uttryck som utvärderas till ett numeriskt värde.

ACOS(expr)

ASIN

ASIN(1)

Beräknar arcus sinus för ett numeriskt uttryck.

expr är ett uttryck som utvärderas till ett numeriskt värde.

ASIN(expr)

ATAN

ATAN(1)

Beräknar arcus tangens för ett numeriskt uttryck.

expr är ett uttryck som utvärderas till ett numeriskt värde.

ATAN(expr)

ATAN2

ATAN2(1, 2)

Beräknar arcus tangens för y /x, där y är det första numeriska uttrycket och x är det andra numeriska uttrycket.

ATAN2(expr1, expr2)

CEILING

CEILING(Profit)

Avrundar ett numeriskt uttryck som inte är ett heltal till närmaste högsta heltal. Om det numeriska uttrycket utvärderas till ett heltal returnerar CEILING-funktionen det heltalet.

CEILING(expr)

COS

COS(1)

Beräknar cosinus för ett numeriskt uttryck.

expr är ett uttryck som utvärderas till ett numeriskt värde.

COS(expr)

COT

COT(1)

Beräknar cotangens för ett numeriskt uttryck.

expr är ett uttryck som utvärderas till ett numeriskt värde.

COT(expr)

DEGREES

DEGREES(1)

Konverterar ett uttryck från radianer till grader.

expr är ett uttryck som utvärderas till ett numeriskt värde.

DEGREES(expr)

EXP

EXP(4)

Upphöjer värdet till given potens. Beräknar e upphöjt till n, där e är basen för den naturliga logaritmen.

EXP(expr)

ExtractBit

Int ExtractBit(1, 5)

Hämtar en bit på en särskild position i ett heltal. Den returnerar ett heltal på antingen 0 eller 1 som motsvarar bitens position.

ExtractBit([Source Number], [Digits])

FLOOR

FLOOR(Profit)

Avrundar ett numeriskt uttryck som inte är ett heltal till närmaste lägsta heltal. Om det numeriska uttrycket utvärderas till ett heltal returnerar FLOOR-funktionen det heltalet.

FLOOR(expr)

LOG

LOG(1)

Beräknar den naturliga logaritmen för ett uttryck.

expr är ett uttryck som utvärderas till ett numeriskt värde.

LOG(expr)

LOG10

LOG10(1)

Beräknar bas-10-logaritmen för ett uttryck.

expr är ett uttryck som utvärderas till ett numeriskt värde.

LOG10(expr)

MOD

MOD(10, 3)

Dividerar det första numeriska uttrycket med det andra numeriska uttrycket och returnerar återstående del av kvoten.

MOD(expr1, expr2)

PI

PI()

Returnerar det konstanta värdet pi.

PI()

POWER

POWER(Profit, 2)

Tar det första numeriska uttrycket och upphöjer det till potensen som anges i det andra numeriska uttrycket.

POWER(expr1, expr2)

RADIANS

RADIANS(30)

Konverterar ett uttryck från grader till radianer.

expr är ett uttryck som utvärderas till ett numeriskt värde.

RADIANS(expr)

RAND

RAND()

Returnerar ett pseudoslumptal mellan 0 och 1.

RAND()

RANDFromSeed

RAND(2)

Returnerar ett pseudoslumptal baserat på ett fördefinierat värde. För ett givet fördefinierat värde genereras samma uppsättning av slumptal.

RAND(expr)

ROUND

ROUND(2.166000, 2)

Avrundar ett numeriskt uttryck till n siffrors precision.

expr är ett uttryck som utvärderas till ett numeriskt värde.

integer är ett positivt heltal som representerar antalet siffrors precision.

ROUND(expr, integer)

SIGN

SIGN(Profit)

Returnerar följande:

  • 1 om det numeriska uttrycket utvärderas till ett positivt tal

  • -1 om det numeriska uttrycket utvärderas till ett negativt tal

  • 0 om det numeriska uttrycket utvärderas till noll

SIGN(expr)

SIN

SIN(1)

Beräknar sinus för det numeriska uttrycket.

SIN(expr)

SQRT

SQRT(7)

Beräknar kvadratroten för argumentet till det numeriska uttrycket. Det numeriska uttrycket måste utvärderas till ett icke-negativt tal.

SQRT(expr)

TAN

TAN(1)

Beräknar tangens för ett numeriskt uttryck.

expr är ett uttryck som utvärderas till ett numeriskt värde.

TAN(expr)

TRUNCATE

TRUNCATE(45.12345, 2)

Kapar ett decimaltal och returnerar ett givet antal decimaltal.

expr är ett uttryck som utvärderas till ett numeriskt värde.

integer är ett positivt heltal som representerar det antal tecken till höger om decimaltecknet som ska returneras.

TRUNCATE(expr, integer)

Köra aggregeringsfunktioner

Vid körning av aggregeringsfunktioner utförs åtgärder på flera värden för att skapa totala resultat.

Funktion Exempel Beskrivning Syntax

MAVG

 

Beräknar ett glidande medelvärde för de n sista dataraderna i resultatuppsättningen, inklusive aktuell rad.

expr är ett uttryck som utvärderas till ett numeriskt värde. integer är ett positivt heltal. Representerar genomsnittet för de n sista dataraderna.

MAVG(expr, integer)

MSUM

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

Beräknar en glidande summa för de n sista dataraderna, inklusive aktuell rad.

expr är ett uttryck som utvärderas till ett numeriskt värde. integer är ett positivt heltal. Representerar summan för de sista n dataraderna.

MSUM(expr, integer)

RSUM

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

Beräknar en löpande summa baserad på påträffade poster.

expr är ett uttryck som utvärderas till ett numeriskt värde.

RSUM(expr)

RCOUNT

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

Tar en uppsättning poster som indata och räknar antalet påträffade poster.

expr är ett uttryck av valfri datatyp.

RCOUNT(expr)

RMAX

SELECT month, profit,RMAX(profit) from sales_subject_area

Tar en uppsättning poster som indata och visar maximivärdet av påträffade poster.

expr är ett uttryck av valfri datatyp.

RMAX(expr)

RMIN

select month, profit,RMIN(profit) from sales_subject_area

Tar en uppsättning poster som indata och visar minimivärdet av påträffade poster.

expr är ett uttryck av valfri datatyp.

RMIN(expr)

Spatiala funktioner

Med spatiala funktioner kan du utföra geografiska analyser när du modellerar data. Du skulle till exempel kunna beräkna avståndet mellan två geografiska områden (kallade former eller polygoner).

Obs!:

Du kan inte använda dessa spatiala funktioner i anpassade beräkningar för arbetsböcker för visualisering.
Funktion Exempel Beskrivning Syntax
GeometryArea

GeometryArea(Shape)

Beräknar den yta som formen upptar.

GeometryArea(Shape)

GeometryDistance

GeometryDistance(TRIP_START, TRIP_END)

Beräknar avståndet mellan två former.

GeometryDistance(Shape 1, Shape 2)

GeometryLength

GeometryLength(Shape)

Beräknar en forms omkrets.

GeometryLength(Shape)

GeometryRelate

GeometryRelate(TRIP_START, TRIP_END)

Fastställer huruvida en form finns inuti en annan form. Returnerar TRUE eller FALSE som en sträng (varchar).

GeometryRelate(Shape 1, Shape 2)

GeometryWithinDistance

GeometryWithinDistance(TRIP_START, TRIP_END, 500)

Fastställer huruvida två former ligger inom ett angivet avstånd från varandra. Returnerar TRUE eller FALSE som en sträng (varchar).

GeometryWithinDistance(Shape1, Shape2, DistanceInFloat)

Strängfunktioner

Strängfunktioner utför olika teckenmanipuleringar. De används på teckensträngar.

Funktion Exempel Beskrivning Syntax

ASCII

ASCII('a')

Konverterar en enstaka teckensträng till motsvarande ASCII-kod, mellan 0 och 255. Om teckenuttrycket utvärderas till flera tecken returneras den ASCII-kod som motsvarar det första tecknet i uttrycket.

expr är ett uttryck som utvärderas till en teckensträng.

ASCII(expr)

BIT_LENGTH

BIT_LENGTH('abcdef')

Returnerar längden i bitar för en angiven sträng. Varje Unicode-tecken är 2 byte långt (vilket motsvarar 16 bitar).

expr är ett uttryck som utvärderas till en teckensträng.

BIT_LENGTH(expr)

CHAR

CHAR(35)

Konverterar ett numeriskt värde mellan 0 och 255 till motsvarande teckenvärde enligt ASCII-kod.

expr är ett uttryck som utvärderas till ett numeriskt värde mellan 0 och 255.

CHAR(expr)

CHAR_LENGTH

CHAR_LENGTH(Customer_Name)

Returnerar längden i antal tecken för en given sträng. Inledande och avslutande blanksteg räknas inte med i stränglängden.

expr är ett uttryck som utvärderas till en teckensträng.

CHAR_LENGTH(expr)

CONCAT

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

Sammanfogar två teckensträngar.

exprs är uttryck som utvärderas till kommaavgränsade teckensträngar.

Du måste använda rådata, inte formaterade data, med CONCAT.

CONCAT(expr1, expr2)

INSERT

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

Infogar en angiven teckensträng på en angiven plats i en annan teckensträng.

expr1 är ett uttryck som utvärderas till en teckensträng. Identifierar målteckensträngen.

integer1 är ett positivt heltal som representerar antalet tecken från början av målsträngen där den andra strängen ska infogas.

integer2 är ett positivt heltal som representerar antalet tecken i målsträngen som ska ersättas av den andra strängen.

expr2 är ett uttryck som utvärderas till en teckensträng. Identifierar den teckensträng som ska infogas i målsträngen.

INSERT(expr1, integer1, integer2, expr2)

LEFT

SELECT LEFT('123456', 3) FROM table

Returnerar ett givet antal tecken från vänster i strängen.

expr är ett uttryck som utvärderas till en teckensträng

integer är ett positivt heltal som representerar det antal tecken, räknat från vänster i strängen, som ska returneras.

LEFT(expr, integer)

LENGTH

LENGTH(Customer_Name)

Returnerar längden i antal tecken för en given sträng. Längden returneras utan avslutande blankstegstecken.

expr är ett uttryck som utvärderas till en teckensträng.

LENGTH(expr)

LOCATE

LOCATE('d' 'abcdef')

Returnerar den numeriska positionen för en teckensträng i en annan teckensträng. Om teckensträngen inte hittas i strängen som söks igenom returnerar funktionen ett värde på 0.

expr1 är ett uttryck som utvärderas till en teckensträng. Identifierar den sträng som du vill söka efter.

expr2 är ett uttryck som utvärderas till en teckensträng.

Identifierar den sträng där sökningen görs.

LOCATE(expr1, expr2)

LOCATEN

LOCATEN('d' 'abcdef', 3)

Returnerar liksom LOCATE den numeriska positionen för en teckensträng i en annan teckensträng. LOCATEN innehåller ett heltalsargument som gör att du kan ange en startposition för att påbörja sökningen.

expr1 är ett uttryck som utvärderas till en teckensträng. Identifierar den sträng som du vill söka efter.

expr2 är ett uttryck som utvärderas till en teckensträng. Identifierar den sträng där sökningen görs.

integer är ett positivt heltal (skilt från noll) som representerar startpositionen för sökningen efter teckensträngen.

LOCATEN(expr1, expr2, integer)

LOWER

LOWER(Customer_Name)

Konverterar en teckensträng till gemener.

expr är ett uttryck som utvärderas till en teckensträng.

LOWER(expr)

OCTET_LENGTH

OCTET_LENGTH('abcdef')

Returnerar antal byte för en angiven sträng.

expr är ett uttryck som utvärderas till en teckensträng.

OCTET_LENGTH(expr)

POSITION

POSITION('d', 'abcdef')

Returnerar den numeriska positionen för strExpr1 i ett teckenuttryck. Om strExpr1 inte hittas returnerar funktionen 0.

expr1 är ett uttryck som utvärderas till en teckensträng. Identifierar den sträng som du vill söka efter i målsträngen. Till exempel "d".

expr2 är ett uttryck som utvärderas till en teckensträng. Identifierar den målsträng där sökningen görs. Till exempel "abcdef".

POSITION(expr1, expr2)

REPEAT

REPEAT('abc', 4)

Upprepar ett angivet uttryck n gånger.

expr är ett uttryck som utvärderas till en teckensträng

integer är ett positivt heltal som representerar antalet gånger som teckensträngen ska upprepas.

REPEAT(expr, integer)

REPLACE

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

Ersätter ett eller flera tecken i ett givet teckenuttryck med ett eller flera andra tecken.

expr1 är ett uttryck som utvärderas till en teckensträng. Det här är den sträng i vilken tecken ska ersättas.

expr2 är ett uttryck som utvärderas till en teckensträng. Denna andra sträng identifierar de tecken från den första strängen som ska ersättas.

expr3 är ett uttryck som utvärderas till en teckensträng. Denna tredje sträng anger de tecken som ska sättas in i den första strängen.

REPLACE(expr1, expr2, expr3)

RIGHT

SELECT RIGHT('123456', 3) FROM table

Returnerar ett givet antal tecken från höger i strängen.

expr är ett uttryck som utvärderas till en teckensträng.

integer är ett positivt heltal som representerar det antal tecken, räknat från höger i strängen, som ska returneras.

RIGHT(expr, integer)

SPACE

SPACE(2)

Infogar blanksteg.

integer är ett positivt heltal som anger antalet blanksteg som ska infogas.

SPACE(expr)

SUBSTRING

SUBSTRING('abcdef' FROM 2)

Skapar en ny sträng med början från ett givet antal tecken in i den ursprungliga strängen.

expr är ett uttryck som utvärderas till en teckensträng.

startPos är ett positivt heltal som representerar antalet tecken från början av strängens vänstra sida där resultatet ska börja.

SUBSTRING([SourceString] FROM [StartPostition])

SUBSTRINGN

SUBSTRING('abcdef' FROM 2 FOR 3)

Skapar liksom SUBSTRING en ny sträng med början från ett givet antal tecken in i den ursprungliga strängen.

SUBSTRINGN inkluderar ett heltalsargument som gör att du kan ange längden på den nya strängen i antal tecken.

expr är ett uttryck som utvärderas till en teckensträng.

startPos är ett positivt heltal som representerar antalet tecken från början av strängens vänstra sida där resultatet ska börja.

SUBSTRING(expr FROM startPos FOR length)

TrimBoth

Trim(BOTH '_' FROM '_abcdef_')

Tar bort givna inledande och avslutande tecken från en teckensträng.

char är ett enstaka tecken. Om du utelämnar den här specifikationen (och de enkla citattecken som krävs) används ett blankstegstecken som standard.

expr är ett uttryck som utvärderas till en teckensträng.

TRIM(BOTH char FROM expr)

TRIMLEADING

TRIM(LEADING '_' FROM '_abcdef')

Tar bort givna inledande tecken från en teckensträng.

char är ett enstaka tecken. Om du utelämnar den här specifikationen (och de enkla citattecken som krävs) används ett blankstegstecken som standard.

expr är ett uttryck som utvärderas till en teckensträng.

TRIM(LEADING char FROM expr)

TRIMTRAILING

TRIM(TRAILING '_' FROM 'abcdef_')

Tar bort givna avslutande tecken från en teckensträng.

char är ett enstaka tecken. Om du utelämnar den här specifikationen (och de enkla citattecken som krävs) används ett blankstegstecken som standard.

expr är ett uttryck som utvärderas till en teckensträng.

TRIM(TRAILING char FROM expr)

UPPER

UPPER(Customer_Name)

Konverterar en teckensträng till versaler.

expr är ett uttryck som utvärderas till en teckensträng.

UPPER(expr)

Tips om hur du använder strängfunktioner

Här är några tips på hur du får bästa resultat när du använder strängfunktioner i dina arbetsböcker.

Sammanfoga flera värden:

Använd LISTAGG till att sammanfoga flera värden i en cell och rad.

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

Lägg till on overflow truncate om resultatsträngen är för lång och lägg till distinct om värdena inte är unika.

Exempel:

listagg(distinct City_ID by STATE on overflow truncate)

Systemfunktioner

Systemfunktionerna i USER returnerar värden som gäller sessionen. Det kan till exempel vara användarnamnet du loggade in med.

Funktion Exempel Beskrivning Syntax

DATABASE

 

Returnerar namnet på de ämnesområden där du är inloggad.

DATABASE()

USER

 

Returnerar användarnamnet för den semantiska modell du är inloggad på.

USER()

Tidsseriefunktioner

Med tidsseriefunktioner kan du aggregera och prognosticera data baserat på tidsdimensioner. Du kan till exempel använda funktionen AGO till att beräkna intäkten det senaste året.

Tidsdimensionsmedlemmar måste finnas på eller under nivån för funktionen. Detta medför att en eller flera kolumner som unikt identifierar medlemmar på eller under den givna nivån måste projiceras i frågan.

Funktion Exempel Beskrivning Syntax

AGO

SELECT Year_ID, AGO(sales, year, 1)

Beräknar det aggregerade värdet för ett mått under en angiven förfluten tid. Du beräknar till exempel intäkt per månad för ett år sedan med AGO(Revenue, Year, 1, SHIP_MONTH). Vill du beräkna kvartalsvis intäkt under det senaste kvartalet använder du AGO(Revenue, Quarter, 1).

AGO(MEASURE, TIME_LEVEL, OFFSET)

Där:

  • MEASURE representerar måttet som ska beräknas, till exempel intäkter.
  • TIME_LEVEL representerar tidsintervallet, som måste vara År, Kvartal, Månad, Vecka eller Dag.
  • OFFSET representerar hur många tidsintervall bakåt som ska beräknas, till exempel 1 för ett år.

PERIODROLLING

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

Beräknar aggregeringen för ett mått över en period som börjar x tidsenheter och slutar y tidsenheter från den aktuella tiden. Du kan till exempel i PERIODROLLING beräkna försäljning för en period som börjar ett kvartal före och slutar ett kvartal efter det nuvarande kvartalet.

PERIODROLLING(measure, x [,y])

Där:

  • MEASURE representerar namnet på en måttkolumn.
  • X är ett heltal som representerar förskjutningen från aktuell tidpunkt.
  • Y är ett heltal som anger antalet tidsenheter som funktionen ska beräknas över.
  • HIERARCHY är ett valfritt argument som representerar namnet på en hierarki i en tidsdimension, till exempel YR, MON eller DAY, som du vill använda för att beräkna tidsfönstret.

TODATE

SELECT Year_ID, Month_ID, TODATE (sales, year)

Beräknar det aggregerade värdet för ett mått från början på en tidsperiod till den senaste tidsperioden, t.ex. beräkningar av ackumulerat under året.

Du beräknar till exempel ackumulerad försäljning under året med TODATE(sales, year).

TODATE(MEASURE, TIME_LEVEL)

Där:

  • MEASURE representerar ett uttryck som refererar till åtminstone en måttkolumn, till exempel försäljning.
  • TIME_LEVEL representerar tidsintervallet, som måste vara År, Kvartal, Månad, Vecka eller Dag.