Functies

U kunt verschillende typen functies in uitdrukkingen gebruiken.

Onderwerpen:

Analysefuncties

Met behulp van analysefuncties kunt u gegevens verkennen via modellen zoals een prognose, trendlijn of cluster. U kunt ook analysefuncties slepen en neerzetten in de werkmapeditor.

U kunt ook prognoses, trendlijnen en clusters aan een werkmap toevoegen door ze te selecteren in het tabblad 'Analyses' van het gegevensvenster in de werkmapeditor. Zie voor meer informatie: Statistische analysefuncties aan visualisaties toevoegen.

Functie Voorbeeld Beschrijving Syntaxis

CLUSTER

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

Met deze functie wordt een recordset verzameld en in groepen verdeeld op basis van een of meer invoeruitdrukkingen met behulp van k-means of hiërarchische clustering.

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

FORECAST

Opbrengstenprognose per dag: voorbeeld

In dit voorbeeld wordt de opbrengstenprognose per dag geselecteerd.

FORECAST("A - Voorbeeldomzet"."Basisfeiten"."1- Opbrengsten" Target,
("A - Voorbeeldomzet"."Tijd"."T00 Kalenderdatum"),'forecast', 'numPeriods=30;predictionInterval=70;') ForecastedRevenue

Opbrengstenprognose per jaar en kwartaal: voorbeeld

In dit voorbeeld wordt de opbrengstenprognose per jaar en kwartaal geselecteerd.

FORECAST("A - Voorbeeldomzet"."Basisfeiten"."1- Opbrengsten",
("A - Voorbeeldomzet"."Tijd"."T01 Jaar" timeYear, "A - Voorbeeldomzet"."Tijd"."T02 Kwartaal" TimeQuarter),'forecast', 'numPeriods=30;predictionInterval=70;') ForecastedRevenue

Hierdoor wordt een tijdreeksmodel van de opgegeven eenheid voor de reeks gemaakt met behulp van exponentiële afvlakking (ETS), seizoensgebonden ARIMA, ARIMA of Prophet. Het resultaat van deze functie is een prognose voor een set perioden die is opgegeven met het argument numPeriods.

Hieronder ziet u ook aanvullende opties voor de functie 'FORECAST'.

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

Hierbij geldt het volgende:

  • eenheid staat voor de eenheid voor een prognose, bijvoorbeeld opbrengstgegevens.

  • reeks staat voor tijdgranulariteit waarmee het prognosemodel wordt gebouwd. Deze reeks is een lijst met een of meer tijddimensiekolommen. Als u series weglaat, wordt de tijdgranulariteit bepaald door de query.

  • output_column_name staat voor de geldige kolomnamen prognose, laag, hoog en predictionInterval.

  • opties staat voor een lijst met strings van naamwaardeparen die door een puntkomma (;) zijn gescheiden. De waarde kan %1 ... %N bevatten. Deze opties kunnen worden opgegeven in runtime_binded_options.

  • runtime_binded_options staat voor een lijst met door komma's gescheiden kolommen en opties. Waarden voor deze kolommen en opties worden geëvalueerd en opgelost gedurende de uitvoeringstijd van elke afzonderlijke query.

Hieronder ziet u ook aanvullende opties voor de functie 'FORECAST'.

OUTLIER

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

Hiermee wordt een record als uitschieter geclassificeerd op basis van een of meer invoeruitdrukkingen met behulp van k-means, hiërarchische clustering of multivariate detectiealgoritmen voor uitschieters.

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

REGR

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

Met deze functie wordt een lineair model passend gemaakt en worden de passend gemaakte waarden of het passend gemaakte model geretourneerd. U kunt deze functie gebruiken om een lineaire curve passend te maken voor twee eenheden.

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

Bij het weergeven van een visualisatie raadt Oracle u aan een trendlijn toe te passen met behulp van de eigenschap Statistieken toevoegen. Zie voor meer informatie: Visualisatie-eigenschappen aanpassen.

Met deze functie wordt een lineair, polynomiaal of exponentieel model passend gemaakt en worden de passend gemaakte waarden of het passend gemaakte model geretourneerd. In numeric_expr staat de Y-waarde voor de trend en in series (tijdkolommen) staat de X-waarde.

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

Opties voor de functie 'FORECAST' In de volgende tabel ziet u de beschikbare opties die u voor de functie FORECAST kunt gebruiken.

Naam optie Waarden Beschrijving
numPeriods Geheel getal Het aantal perioden voor de prognose.
predictionInterval 0 t/m 100, waarbij hogere waarden een hogere betrouwbaarheid aangeven Het betrouwbaarheidsniveau van de voorspelling
modelType

ETS (exponentiële afvlakking)

SeasonalArima

ARIMA

Prophet

Het model voor de prognose
useBoxCox

TRUE

FALSE

Indien TRUE, gebruikt u de Box-Cox-transformatie.
lambdaValue Niet van toepassing

De parameter van de Box-Cox-transformatie

Negeer deze indien NULL of wanneer useBoxCox FALSE is.

Anders worden de gegevens getransformeerd vóór de schatting van het model.

trendDamp

TRUE

FALSE

Dit is specifiek voor het model 'Exponentiële afvlakking'.

Indien TRUE, gebruikt u de gedempte trend. Indien FALSE or NULL, gebruikt u de niet-gedempte trend.

errorType

Niet van toepassing

Dit is specifiek voor het model 'Exponentiële afvlakking'.
trendType

N (geen)

A (optelling)

M (vermenigvuldiging)

Z (automatisch geselecteerd)

Dit is specifiek voor het model 'Exponentiële afvlakking'.
seasonType

N (geen)

A (optelling)

M (vermenigvuldiging)

Z (automatisch geselecteerd)

Dit is specifiek voor het model 'Exponentiële afvlakking'.
modelParamIC

ic_auto

ic_aicc

ic_bic

ic_auto (standaardwaarde)

Het informatiecriterium (IC) dat wordt gebruikt in de modelselectie

Conversiefuncties

Met de conversiefuncties converteert u een waarde van de ene vorm naar de andere.

Functie Voorbeeld Beschrijving Syntaxis

CAST

CAST(hiredate AS CHAR(40)) FROM werknemer

Hiermee wijzigt u het gegevenstype van een uitdrukking of NULL-tekstconstante in een ander gegevenstype. U kunt bijvoorbeeld een klantnaam (het gegevenstype CHAR of VARCHAR) of geboortedatum (een datum/tijd-constante) omzetten.

Gebruik CAST om het gegevenstype te wijzigen in Date.

Gebruik niet TODATE.

CAST(expr AS type)

IFNULL

IFNULL(Verkoop, 0)

Hiermee wordt getest of een uitdrukking resulteert in een NULL-waarde. Als dit het geval is, wordt de opgegeven waarde toegewezen aan de uitdrukking.

IFNULL(expr, value)

INDEXCOL

SELECT INDEXCOL(VALUEOF ("NQ_SESSION"."GEOGRAPHY_LEVEL"), Land, Provincie, Plaats), Opbrengsten FROM Verkoop

Gebruikt externe gegevens zodat de juiste kolom aan de aangemelde gebruiker wordt weergegeven.

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

NULLIF

SELECT e.achternaam, NullIf(e.functie_id, j.functie_id) "Oude functie-ID" FROM werknemers e, functiehistorie j WHERE e.werknemer_id = j.werknemer_id ORDER BY achternaam, "Oude functie-ID";

Hiermee worden twee uitdrukkingen vergeleken. Als de uitdrukkingen gelijk zijn, wordt NULL geretourneerd. Als de uitdrukkingen niet gelijk zijn, wordt de eerste uitdrukking geretourneerd. U kunt de tekstconstante NULL niet opgeven voor de eerste uitdrukking.

NULLIF([expression], [expression])

To_DateTime

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

Hiermee worden stringconstanten met de indeling DateTime geconverteerd naar een DateTime-gegevenstype.

To_DateTime([expression], [literal])

VALUEOF

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

Verwijst naar de waarde van een semantische modelvariabele in een filter.

Gebruik expr-variabelen als argumenten van de functie VALUEOF. Verwijs naar statische variabelen van een semantisch model met behulp van de naam.

VALUEOF(expr)

Gegevensextractiefuncties

Met deze functie worden tijdstempelwaarden berekend of naar beneden afgerond op de dichtstbijzijnde opgegeven tijdsperiode, bijvoorbeeld uur, dag, week, maand of kwartaal.

U kunt de berekende tijdstempels gebruiken om gegevens te aggregeren met een andere granulariteit. Bijvoorbeeld: u kunt de functie EXTRACTDAY() toepassen op verkooporderdatums om een tijdstempel voor middernacht te berekenen op de dag dat orders worden geplaatst, zodat u de gegevens per dag kunt aggregeren.

Functie Voorbeeld Beschrijving Syntaxis

Dag extraheren

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

Retourneert een tijdstempel voor middernacht (12 AM) op de dag waarop de waarde wordt ingevoerd. Bijvoorbeeld: als de tijdstempel van de invoer 3:02:01 AM op 22 februari is, retourneert de functie de tijdstempel 12:00:00 AM op 22 februari.

EXTRACTDAY(expr)

Uur extraheren

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

Retourneert een tijdstempel voor het begin van het uur waarin de waarde wordt ingevoerd. Bijvoorbeeld: als de tijdstempel van de invoer 11:18:30 PM is, retourneert de functie de tijdstempel 11:00:00 PM.

EXTRACTHOUR (expr)

Uur van dag extraheren

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

Retourneert een tijdstempel waarbij het uur waarop de waarde is ingevoerd wordt gelijkgetrokken met standaardwaarden voor jaar, maand, dag, minuten en seconden.

EXTRACTHOUROFDAY(expr)

Milliseconde extraheren

EXTRACTMILLISECOND("Orderdatum")
  • 1997/01/07 15:32:02.150 retourneert 1997/01/07 15:32:02.150.
  • 1997/01/07 18:42:01.265 retourneert 1997/01/07 18:42:01.265.
Retourneert een tijdstempel met milliseconden voor de ingevoerde waarde. Bijvoorbeeld: als de tijdstempel van de invoer 15:32:02.150 is, retourneert de functie de tijdstempel 15:32:02.150.

EXTRACTMILLISECOND(expr)

Minuut extraheren

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

Retourneert een tijdstempel voor het begin van de minuut waarin de waarde is ingevoerd. Bijvoorbeeld: als de tijdstempel van de invoer 11:38:21 AM is, retourneert de functie de tijdstempel 11:38:00 AM.

EXTRACTMINUTE (expr)

Maand extraheren

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

Retourneert een tijdstempel voor de eerste dag in de maand waarin de waarde is ingevoerd. Bijvoorbeeld: als de tijdstempel van de invoer 22 februari is, retourneert de functie de tijdstempel 1 februari.

EXTRACTMONTH(expr)

Kwartaal extraheren

EXTRACTQUARTER("Orderdatum")
  • 2/22/1967 3:02:01 AM retourneert 1/1/1967 12:00:00 AM, de eerste dag van het eerste boekkwartaal.
  • 6/17/1999 11:18:00 PM retourneert 4/1/1999 12:00:00 AM, de eerste dag van het tweede boekkwartaal.

  • 9/2/2022 10:38:21 AM retourneert 7/1/2022 12:00:00 AM, de eerste dag van het derde boekkwartaal.

    Tip: gebruik QUARTER (expr) om alleen het kwartaalnummer van de geretourneerde tijdstempel te retourneren.

Retourneert een tijdstempel voor de eerste dag in het kwartaal waarin de waarde is ingevoerd. Bijvoorbeeld: als de tijdstempel van de invoer in het derde boekkwartaal is, retourneert de functie de tijdstempel 1 juli.

EXTRACTQUARTER(expr)

Seconde extraheren

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

Retourneert een tijdstempel voor de ingevoerde waarde. Bijvoorbeeld: als de tijdstempel van de invoer 15:32:02.150 is, retourneert de functie de tijdstempel 15:32:02.

EXTRACTSECOND(expr)

Week extraheren

EXTRACTWEEK("Orderdatum")
  • 2014/09/24 10:58:00 retourneert 2014/09/21.

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

Retourneert de datum van de eerste dag van de week (zondag) waarin de waarde is ingevoerd. Bijvoorbeeld: als de tijdstempel van de invoer woensdag 24 september is, retourneert de functie de tijdstempel zondag 21 september.

Opmerking: Als de eerste dag van een week (d.w.z. zondag) in een vorig jaar valt en daardoor de aggregatie negatief zou beïnvloeden, retourneert de functie de 7e dag van de week (d.w.z. zaterdag) in het huidige jaar in plaats van de eerste dag van de week in het vorige jaar. 01-01-2024, 02-01-2024 en 03-01-2024 aggregeren bijvoorbeeld naar zaterdag 06-01-2024 en niet naar zondag 29-12-2023.

EXTRACTWEEK(expr)

Jaar extraheren

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

Retourneert een tijdstempel voor 1 januari voor het jaar waarin de waarde wordt ingevoerd. Bijvoorbeeld: als de tijdstempel van de invoer in 1967 is, retourneert de functie de tijdstempel 1 januari 1967.

EXTRACTYEAR (expr)

Tips voor het gebruik van datumdimensies in onderwerpgebieden

Hier volgen enkele tips om de beste resultaten te krijgen bij het gebruik van datums voor onderwerpgebieden in berekeningen.

Een datum voor het onderwerpgebied toevoegen aan een berekening

Als u een datum vanuit een onderwerpgebied rechtstreeks naar een berekening sleept en deze verwerkt als een string of geheel getal, krijgt u een foutmelding. Dit komt doordat de onderliggende datumwaarde een tijdstempel is.

Gebruik in plaats daarvan een van de Gegevensextractiefuncties om de datum te interpreteren.

U hebt bijvoorbeeld deze datums voor het onderwerpgebied.
Beschrijving van GUID-39C55B3A-A055-45D3-9904-948680247C08-default.png volgt hierna
.png

Om maanden uit deze datums voor het onderwerpgebied te extraheren, gebruikt u de functie 'ExtractMonthOfYear':

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

Weergavefuncties

Weergavefuncties worden gebruikt voor de resultatenset van een query.

Functie Voorbeeld Beschrijving Syntaxis

BottomN

BottomN(Verkoop, 10)

Hiermee worden de n laagste waarden van uitdrukkingen geretourneerd, gerangschikt van laagste naar hoogste.

BottomN([NumericExpression], [integer])

FILTER

FILTER(Verkoop USING Product = 'widget')

Hiermee wordt de uitdrukking met het opgegeven vooraf geaggregeerde filter berekend.

FILTER(measure USING filter_expr)

MAVG

MAVG(Verkoop, 10)

Hiermee wordt een voortschrijdend gemiddelde berekend van de laatste n gegevensrijen in de resultatenset, met inbegrip van de huidige rij.

MAVG([NumericExpression], [integer])

MSUM

SELECT Maand, Opbrengsten, MSUM(Opbrengsten, 3) as 3_MO_SUM FROM Verkoop

Hiermee wordt een voortschrijdend totaal berekend van de laatste n gegevensrijen, met inbegrip van de huidige rij.

Het totaal voor de eerste rij is gelijk aan de numerieke uitdrukking voor de eerste rij. Het totaal van de tweede rij wordt berekend door het totaal te nemen van de eerste twee gegevensrijen, enzovoort. Wanneer de n e rij is bereikt, wordt het totaal berekend op basis van de laatste n rijen met gegevens.

MSUM([NumericExpression], [integer])

NTILE

NTILE(Verkoop, 100)

Hiermee wordt de rang van een waarde bepaald in termen van een door de gebruiker opgegeven bereik. Deze retourneert gehele getallen die een willekeurig bereik van rangen vertegenwoordigen. In het voorbeeld wordt een bereik van 1 tot 100 getoond, met de laagste verkoop = 1 en de hoogste verkoop = 100.

NTILE([NumericExpression], [integer])

PERCENTILE

PERCENTILE(Verkoop)

Hiermee wordt een percentagerang berekend voor elke waarde die voldoet aan het numerieke uitdrukkingsargument. Het bereik van de percentielrang varieert van 0 (1ste percentiel) tot 1 (100ste percentiel).

PERCENTILE([NumericExpression])

RANK

RANK(Verkoop)

Hiermee wordt de rang berekend voor elke waarde die voldoet aan het numerieke uitdrukkingsargument. Het hoogste getal krijgt de rang 1, en elke volgende rang wordt toegewezen aan het volgende gehele getal (2, 3, 4,...). Als bepaalde waarden gelijk zijn, krijgen ze dezelfde rang toegewezen (bijvoorbeeld 1, 1, 1, 4, 5, 5, 7...).

RANK([NumericExpression])

RCOUNT

SELECT maand, winst, RCOUNT(winst) FROM verkoop WHERE winst > 200

Hiermee wordt een set records als invoer genomen en wordt het aantal records geteld dat tot dusverre is gevonden.

RCOUNT([NumericExpression])

RMAX

SELECT maand, winst, RMAX(winst) FROM verkoop

Hiermee wordt een set records als invoer genomen en wordt de maximale waarde getoond op basis van het aantal records dat tot dusverre is gevonden. Het opgegeven gegevenstype moet een type zijn dat kan worden gesorteerd.

RMAX([NumericExpression])

RMIN

SELECT maand, winst, RMIN(winst) FROM verkoop

Hiermee wordt een set records als invoer genomen en wordt de minimale waarde getoond op basis van het aantal records dat tot dusverre is gevonden. Het opgegeven gegevenstype moet een type zijn dat kan worden gesorteerd.

RMIN([NumericExpression])

RSUM

SELECT maand, opbrengsten, RSUM(opbrengsten) as RUNNING_SUM FROM verkoop

Hiermee wordt een voortschrijdend totaal berekend op basis van het aantal records dat tot dusver is gevonden.

Het totaal voor de eerste rij is gelijk aan de numerieke uitdrukking voor de eerste rij. Het totaal van de tweede rij wordt berekend door het totaal te nemen van de eerste twee gegevensrijen, enzovoort.

RSUM([NumericExpression])

TOPN

TOPN(Verkoop, 10)

Hiermee worden de n hoogste waarden van uitdrukkingen geretourneerd, gerangschikt van hoogste naar laagste.

TOPN([NumericExpression], [integer])

Tips voor het gebruik van weergavefuncties

  • FILTER: wanneer u een rapport samenstelt aan de hand van een onderwerpgebied, gebruik dan opgegeven hiërarchieën in het onderwerpgebied in plaats van dat u hiërarchiekolommen direct filtert in een berekening. Kortom, als een onderwerpgebied een hiërarchie heeft voor Tijd\Boekjaar\Boekkwartaal, vermijd dan:

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

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

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

Evaluatiefuncties

Evaluatiefuncties zijn databasefuncties die kunnen worden gebruikt om uitdrukkingen door te geven om geavanceerde berekeningen te krijgen.

Voor ingesloten databasefuncties kunnen een of meer kolommen zijn vereist. Binnen de functie wordt met %1 ... %N naar deze kolommen verwezen. De werkelijke kolommen moeten na de functie worden vermeld.

Functie Voorbeeld Beschrijving Syntaxis

EVALUATE

SELECT EVALUATE('instr(%1, %2)', adres, 'Gouda') FROM werknemers

Hiermee wordt de opgegeven databasefunctie, met optionele kolommen waarnaar wordt verwezen als parameters, naar de database doorgegeven voor evaluatie.

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

EVALUATE_AGGR

EVALUATE_AGGR('REGR_SLOPE(%1, %2)', verkoop.hoeveelheid, markt.marktsleutel)

Hiermee wordt de opgegeven databasefunctie, met optionele kolommen waarnaar wordt verwezen als parameters, naar de database doorgegeven voor evaluatie. Deze functie is bedoeld voor aggregatiefuncties met een GROUP BY-clausule.

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

Wiskundige functies

Door de in deze sectie beschreven wiskundige functies worden wiskundige bewerkingen uitgevoerd.

Functie Voorbeeld Beschrijving Syntaxis

ABS

ABS(Winst)

Hiermee wordt de absolute waarde van een numerieke uitdrukking berekend.

expr is een willekeurige uitdrukking die resulteert in een numerieke waarde.

ABS(expr)

ACOS

ACOS(1)

Hiermee wordt de arcsinus van een numerieke uitdrukking berekend.

expr is een willekeurige uitdrukking die resulteert in een numerieke waarde.

ACOS(expr)

ASIN

ASIN(1)

Hiermee wordt de arccosinus van een numerieke uitdrukking berekend.

expr is een willekeurige uitdrukking die resulteert in een numerieke waarde.

ASIN(expr)

ATAN

ATAN(1)

Hiermee wordt de arctangens van een numerieke uitdrukking berekend.

expr is een willekeurige uitdrukking die resulteert in een numerieke waarde.

ATAN(expr)

ATAN2

ATAN2(1, 2)

Hiermee wordt de boogtangens van y /x berekend, waarbij y de eerste numerieke uitdrukking is en x de tweede numerieke uitdrukking.

ATAN2(expr1, expr2)

CEILING

CEILING(Winst)

Hiermee wordt een niet-geheeltallige numerieke uitdrukking naar boven afgerond naar het eerstvolgende gehele getal. Als de numerieke uitdrukking resulteert in een geheel getal, retourneert de functie CEILING dat gehele getal.

CEILING(expr)

COS

COS(1)

Hiermee wordt de cosinus van een numerieke uitdrukking berekend.

expr is een willekeurige uitdrukking die resulteert in een numerieke waarde.

COS(expr)

COT

COT(1)

Hiermee wordt de cotangens van een numerieke uitdrukking berekend.

expr is een willekeurige uitdrukking die resulteert in een numerieke waarde.

COT(expr)

DEGREES

DEGREES(1)

Hiermee wordt een uitdrukking omgerekend van radialen naar graden.

expr is een willekeurige uitdrukking die resulteert in een numerieke waarde.

DEGREES(expr)

EXP

EXP(4)

Hiermee wordt de waarde verheven tot de opgegeven macht. Hiermee wordt e tot de macht n berekend, waarbij e het grondtal is van de natuurlijke logaritme.

EXP(expr)

ExtractBit

Int ExtractBit(1, 5)

Hiermee wordt een bit op een bepaalde positie in een geheel getal opgehaald. De functie retourneert een geheel getal van 0 of 1, wat overeenkomt met de positie van de bit.

ExtractBit([Source Number], [Digits])

FLOOR

FLOOR(Winst)

Hiermee wordt een niet-geheeltallige numerieke uitdrukking naar beneden afgerond naar het eerstvolgende gehele getal. Als de numerieke uitdrukking resulteert in een geheel getal, retourneert de functie FLOOR dat gehele getal.

FLOOR(expr)

LOG

LOG(1)

Hiermee wordt de natuurlijke logaritme van een uitdrukking berekend.

expr is een willekeurige uitdrukking die resulteert in een numerieke waarde.

LOG(expr)

LOG10

LOG10(1)

Hiermee wordt de logaritme met grondtal 10 van een uitdrukking berekend.

expr is een willekeurige uitdrukking die resulteert in een numerieke waarde.

LOG10(expr)

MOD

MOD(10, 3)

Hiermee wordt de eerste numerieke uitdrukking gedeeld door de tweede numerieke uitdrukking en het resterende gedeelte van de deling als resultaat geretourneerd.

MOD(expr1, expr2)

PI

PI()

Hiermee wordt de constante waarde pi geretourneerd.

PI()

POWER

POWER(Winst, 2)

Hiermee wordt de eerste numerieke uitdrukking verheven tot de macht die is opgegeven in de tweede numerieke uitdrukking.

POWER(expr1, expr2)

RADIANS

RADIANS(30)

Hiermee wordt een uitdrukking omgerekend van graden naar radialen.

expr is een willekeurige uitdrukking die resulteert in een numerieke waarde.

RADIANS(expr)

RAND

RAND()

Retourneert een pseudo-willekeurig getal tussen 0 en 1.

RAND()

RANDFromSeed

RAND(2)

Retourneert een pseudo-willekeurig getal op basis van een opgegeven waarde. Voor een opgegeven waarde wordt dezelfde set willekeurige getallen gegenereerd.

RAND(expr)

ROUND

ROUND(2.166000, 2)

Hiermee wordt een numerieke uitdrukking afgerond op n cijfers achter de komma.

expr is een willekeurige uitdrukking die resulteert in een numerieke waarde.

integer is een willekeurig positief geheel getal dat het aantal cijfers achter de komma aangeeft.

ROUND(expr, integer)

SIGN

SIGN(Winst)

Retourneert het volgende:

  • 1, als de numerieke uitdrukking resulteert in een positief getal.

  • -1, als de numerieke uitdrukking resulteert in een negatief getal.

  • 0, als de numerieke uitdrukking resulteert in nul.

SIGN(expr)

SIN

SIN(1)

Hiermee wordt de sinus van een numerieke uitdrukking berekend.

SIN(expr)

SQRT

SQRT(7)

Hiermee wordt de vierkantswortel van het argument van de numerieke uitdrukking berekend. De numerieke uitdrukking moet resulteren in een niet-negatief getal.

SQRT(expr)

TAN

TAN(1)

Hiermee wordt de tangens van een numerieke uitdrukking berekend.

expr is een willekeurige uitdrukking die resulteert in een numerieke waarde.

TAN(expr)

TRUNCATE

TRUNCATE(45.12345, 2)

Hiermee wordt een decimaal getal verkort tot het opgegeven aantal decimalen (zonder afronding).

expr is een willekeurige uitdrukking die resulteert in een numerieke waarde.

integer is een willekeurig positief geheel getal dat het te retourneren aantal tekens aan de rechterkant van de decimaal aangeeft.

TRUNCATE(expr, integer)

Aggregatiefuncties uitvoeren

Met voortschrijdende aggregatiefuncties worden bewerkingen uitgevoerd op meerdere waarden om samenvattingsresultaten te maken.

Functie Voorbeeld Beschrijving Syntaxis

MAVG

 

Hiermee wordt een voortschrijdend gemiddelde berekend van de laatste n gegevensrijen in de resultatenset, met inbegrip van de huidige rij.

expr is een willekeurige uitdrukking die resulteert in een numerieke waarde. integer is een willekeurig positief geheel getal. Geeft het gemiddelde aan van de laatste n gegevensrijen.

MAVG(expr, integer)

MSUM

select maand, opbrengsten, MSUM(opbrengsten, 3) as 3_MO_SUM from onderwerp_gebied_verkoop

Hiermee wordt een voortschrijdend totaal berekend van de laatste n gegevensrijen, met inbegrip van de huidige rij.

expr is een willekeurige uitdrukking die resulteert in een numerieke waarde. integer is een willekeurig positief geheel getal. Geeft de som van de laatste n gegevensrijen aan.

MSUM(expr, integer)

RSUM

SELECT maand, opbrengsten, RSUM(opbrengsten) as RUNNING_SUM from onderwerp_gebied_verkoop

Hiermee wordt een voortschrijdend totaal berekend op basis van het aantal records dat tot dusver is gevonden.

expr is een willekeurige uitdrukking die resulteert in een numerieke waarde.

RSUM(expr)

RCOUNT

select maand, winst, RCOUNT(winst) from onderwerp_gebied_verkoop where winst > 200

Hiermee wordt een set records als invoer genomen en wordt het aantal records geteld dat tot dusverre is gevonden.

expr is een uitdrukking van een willekeurig gegevenstype.

RCOUNT(expr)

RMAX

SELECT maand, winst,RMAX(winst) from onderwerp_gebied_verkoop

Hiermee wordt een set records als invoer genomen en wordt de maximale waarde getoond op basis van het aantal records dat tot dusverre is gevonden.

expr is een uitdrukking van een willekeurig gegevenstype.

RMAX(expr)

RMIN

select maand, winst,RMIN(winst) from onderwerp_gebied_verkoop

Hiermee wordt een set records als invoer genomen en wordt de minimale waarde getoond op basis van het aantal records dat tot dusverre is gevonden.

expr is een uitdrukking van een willekeurig gegevenstype.

RMIN(expr)

Ruimtelijke functies

Met ruimtelijke functies kunt u een geografische analyse uitvoeren wanneer u gegevens modelleert. U kunt bijvoorbeeld de afstand tussen twee geografische gebieden (vormen of veelhoeken) berekenen.

Opmerking:

U kunt deze ruimtelijke functies niet gebruiken in aangepaste berekeningen voor visualisatiewerkmappen.
Functie Voorbeeld Beschrijving Syntaxis
GeometryArea

GeometryArea(Shape)

Hiermee wordt het gebied berekend dat een vorm beslaat.

GeometryArea(Shape)

GeometryDistance

GeometryDistance(TRIP_START, TRIP_END)

Hiermee wordt de afstand tussen twee vormen berekend.

GeometryDistance(Shape1, Shape2)

GeometryLength

GeometryLength(Shape)

Hiermee wordt de omtrek van een vorm berekend.

GeometryLength(Shape)

GeometryRelate

GeometryRelate(TRIP_START, TRIP_END)

Hiermee wordt bepaald of de ene vorm zich in een andere vorm bevindt. Retourneert TRUE (Waar) of FALSE (Niet waar) als string (varchar).

GeometryRelate(Shape1, Shape2)

GeometryWithinDistance

GeometryWithinDistance(TRIP_START, TRIP_END, 500)

Hiermee wordt bepaald of twee vormen zich binnen een bepaalde afstand van elkaar bevinden. Retourneert TRUE (Waar) of FALSE (Niet waar) als string (varchar).

GeometryWithinDistance(Shape1, Shape2, DistanceInFloat)

Stringfuncties

Met stringfuncties kunnen diverse tekenbewerkingen worden uitgevoerd. Hiermee worden bewerkingen uitgevoerd op tekenstrings.

Functie Voorbeeld Beschrijving Syntaxis

ASCII

ASCII('a')

Converteert een enkele tekenstring naar de overeenkomstige ASCII-code, tussen 0 en 255. Als de tekenuitdrukking resulteert in meerdere tekens, wordt de ASCII-code geretourneerd die overeenkomt met het eerste teken in de uitdrukking.

expr is een willekeurige uitdrukking die resulteert in een tekenstring.

ASCII(expr)

BIT_LENGTH

BIT_LENGTH('abcdef')

Retourneert de lengte, in bits, van een bepaalde string. Elk Unicode-teken is 2 bytes lang (gelijk aan 16 bits).

expr is een willekeurige uitdrukking die resulteert in een tekenstring.

BIT_LENGTH(expr)

CHAR

CHAR(35)

Converteert een numerieke waarde tussen 0 en 255 naar de tekenwaarde die overeenkomt met de ASCII-code.

expr is een willekeurige uitdrukking die resulteert in een numerieke waarde tussen 0 en 255.

CHAR(expr)

CHAR_LENGTH

CHAR_LENGTH(Klantnaam)

Retourneert de lengte, in aantal tekens, van een bepaalde string. Lege tekens aan het begin en het einde van de string worden niet meegeteld bij het aantal tekens in de string.

expr is een willekeurige uitdrukking die resulteert in een tekenstring.

CHAR_LENGTH(expr)

CONCAT

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

Voegt twee tekenstrings samen.

exprs zijn uitdrukkingen die resulteren in tekenstrings, gescheiden door komma's.

Met CONCAT moet u ruwe gegevens gebruiken in plaats van opgemaakte gegevens.

CONCAT(expr1, expr2)

INSERT

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

Voegt een opgegeven tekenstring in op de opgegeven positie in een andere tekenstring.

expr1 is een willekeurige uitdrukking die resulteert in een tekenstring. Geeft de doeltekenstring aan.

integer1 is een willekeurig positief geheel getal dat het aantal tekens weergeeft vanaf het begin van de doelstring waar de tweede string moet worden ingevoegd.

integer2 is een willekeurig positief geheel getal dat het aantal tekens in de doelstring aangeeft dat moet worden vervangen door de tweede string.

expr2 is een willekeurige uitdrukking die resulteert in een tekenstring. Geeft de tekenstring aan die in de doelstring moet worden ingevoegd.

INSERT(expr1, integer1, integer2, expr2)

LEFT

SELECT LEFT('123456', 3) FROM tabel

Retourneert het opgegeven aantal tekens vanaf de linkerkant van een string.

expr is een willekeurige uitdrukking die resulteert in een tekenstring.

integer is een willekeurig positief geheel getal dat het te retourneren aantal tekens aan de linkerkant van de string aangeeft.

LEFT(expr, integer)

LENGTH

LENGTH(Klantnaam)

Retourneert de lengte, in aantal tekens, van een bepaalde string. De lengte die wordt geretourneerd, is exclusief eventuele lege tekens aan het einde van de string.

expr is een willekeurige uitdrukking die resulteert in een tekenstring.

LENGTH(expr)

LOCATE

LOCATE('d' 'abcdef')

Retourneert de numerieke positie van een tekenstring binnen een andere tekenstring. Als de tekenstring niet wordt gevonden in de string waarin wordt gezocht, wordt met de functie een waarde van 0 geretourneerd.

expr1 is een willekeurige uitdrukking die resulteert in een tekenstring. Geeft de string aan waarnaar moet worden gezocht.

expr2 is een willekeurige uitdrukking die resulteert in een tekenstring.

Geeft de string aan waarin moet worden gezocht.

LOCATE(expr1, expr2)

LOCATEN

LOCATEN('d' 'abcdef', 3)

Retourneert net als LOCATE de numerieke positie van een tekenstring binnen een andere tekenstring. LOCATEN bevat een argument in de vorm van een geheel getal waarmee u een beginpositie kunt opgeven waar het zoeken moet starten.

expr1 is een willekeurige uitdrukking die resulteert in een tekenstring. Geeft de string aan waarnaar moet worden gezocht.

expr2 is een willekeurige uitdrukking die resulteert in een tekenstring. Geeft de string aan waarin moet worden gezocht.

integer is een willekeurig positief geheel getal (niet nul) dat de beginpositie aangeeft waar moet worden begonnen met zoeken naar de tekenstring.

LOCATEN(expr1, expr2, integer)

LOWER

LOWER(Klantnaam)

Converteert een tekenstring naar kleine letters.

expr is een willekeurige uitdrukking die resulteert in een tekenstring.

LOWER(expr)

OCTET_LENGTH

OCTET_LENGTH('abcdef')

Retourneert het aantal bytes van een bepaalde string.

expr is een willekeurige uitdrukking die resulteert in een tekenstring.

OCTET_LENGTH(expr)

POSITION

POSITION('d', 'abcdef')

Retourneert de numerieke positie van strExpr1 in een tekenuitdrukking. Als strExpr1 niet wordt gevonden, wordt met de functie 0 geretourneerd.

expr1 is een willekeurige uitdrukking die resulteert in een tekenstring. Geeft de tekenstring aan waarnaar moet worden gezocht in de doelstring. Bijvoorbeeld "d".

expr2 is een willekeurige uitdrukking die resulteert in een tekenstring. Geeft de doelstring aan waarin moet worden gezocht. Bijvoorbeeld "abcdef".

POSITION(expr1, expr2)

REPEAT

REPEAT('abc', 4)

Herhaalt een opgegeven uitdrukking n maal.

expr is een willekeurige uitdrukking die resulteert in een tekenstring.

integer is een willekeurig positief geheel getal dat het aantal malen aangeeft dat de tekenstring moet worden herhaald.

REPEAT(expr, integer)

REPLACE

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

Vervangt een of meer tekens in een opgegeven tekenuitdrukking door een of meer andere tekens.

expr1 is een willekeurige uitdrukking die resulteert in een tekenstring. Dit is de string waarin tekens moeten worden vervangen.

expr2 is een willekeurige uitdrukking die resulteert in een tekenstring. Deze tweede string geeft de tekens van de eerste string aan die moeten worden vervangen.

expr3 is een willekeurige uitdrukking die resulteert in een tekenstring. Deze derde string geeft de tekens aan die in de eerste string moeten worden vervangen.

REPLACE(expr1, expr2, expr3)

RIGHT

SELECT RIGHT('123456', 3) FROM tabel

Retourneert het opgegeven aantal tekens vanaf de rechterkant van een string.

expr is een willekeurige uitdrukking die resulteert in een tekenstring.

integer is een willekeurig positief geheel getal dat het te retourneren aantal tekens aan de rechterkant van de string aangeeft.

RIGHT(expr, integer)

SPACE

SPACE(2)

Voegt spaties in.

integer is een willekeurig positief geheel getal dat het aantal in te voegen spaties aangeeft.

SPACE(expr)

SUBSTRING

SUBSTRING('abcdef' FROM 2)

Maakt een nieuwe string door het opgegeven aantal tekens uit de oorspronkelijke string te kopiëren.

expr is een willekeurige uitdrukking die resulteert in een tekenstring.

startPos is een willekeurig positief geheel getal dat het aantal tekens weergeeft vanaf het begin van de linkerkant van de string waar het resultaat moet beginnen.

SUBSTRING([SourceString] FROM [StartPostition])

SUBSTRINGN

SUBSTRING('abcdef' FROM 2 FOR 3)

Maakt net als SUBSTRING een nieuwe string door het opgegeven aantal tekens uit de oorspronkelijke string te kopiëren.

SUBSTRINGN bevat een argument in de vorm van een geheel getal waarmee u de lengte van een nieuwe string kunt opgeven (in aantal tekens).

expr is een willekeurige uitdrukking die resulteert in een tekenstring.

startPos is een willekeurig positief geheel getal dat het aantal tekens weergeeft vanaf het begin van de linkerkant van de string waar het resultaat moet beginnen.

SUBSTRING(expr FROM startPos FOR length)

TrimBoth

Trim(BOTH '_' FROM '_abcdef_')

Verwijdert tekens aan het begin en eind van een tekenstring.

char is een willekeurig teken. Als u deze specificatie weglaat (net als de verplichte enkele aanhalingstekens), wordt een leeg teken als de standaardwaarde gebruikt.

expr is een willekeurige uitdrukking die resulteert in een tekenstring.

TRIM(BOTH char FROM expr)

TRIMLEADING

TRIM(LEADING '_' FROM '_abcdef')

Verwijdert tekens aan het begin van een tekenstring.

char is een willekeurig teken. Als u deze specificatie weglaat (net als de verplichte enkele aanhalingstekens), wordt een leeg teken als de standaardwaarde gebruikt.

expr is een willekeurige uitdrukking die resulteert in een tekenstring.

TRIM(LEADING char FROM expr)

TRIMTRAILING

TRIM(TRAILING '_' FROM 'abcdef_')

Verwijdert tekens aan het eind van een tekenstring.

char is een willekeurig teken. Als u deze specificatie weglaat (net als de verplichte enkele aanhalingstekens), wordt een leeg teken als de standaardwaarde gebruikt.

expr is een willekeurige uitdrukking die resulteert in een tekenstring.

TRIM(TRAILING char FROM expr)

UPPER

UPPER(Klantnaam)

Converteert een tekenstring naar hoofdletters.

expr is een willekeurige uitdrukking die resulteert in een tekenstring.

UPPER(expr)

Tips voor het gebruik van LISTAGG in stringfuncties

Hier volgen enkele tips voor het gebruik van de functie LISTAGG om de beste resultaten te krijgen bij het verwerken van strings in uw werkmappen. U kunt bijvoorbeeld een string maken die alle plaatsen in een gegevenskolom bevat.

Meerdere waarden aaneenschakelen:

Gebruik LISTAGG om meerdere stringwaarden in één cel en één rij aaneen te schakelen.

LISTAGG([DISTINCT] <column to concatenate> BY <grouping column>) ON OVERFLOW TRUNCATE
  • DISTINCT: gebruik dit argument om dubbele waarden te verwijderen als waarden niet uniek zijn.
  • ON OVERFLOW TRUNCATE: als het resultaat de maximaal toegestane lengte overschrijdt, gebruikt u dit argument om de geretourneerde string af te kappen.
Voorbeeldgegevens
Number City State
12     New York    New York
14     New York    New York
30     Boston      Massachusetts
18     Salem    Massachusetts
12     Buffalo     New York
10     Buffalo     New York
20     Albany      New York

Voorbeeldopdrachten en -uitvoer

LISTAGG(City, ', ') geeft als uitvoer "New York, New York, Boston, Salem, Buffalo, Buffalo, Albany"

LISTAGG(DISTINCT City, ', ') geeft als uitvoer "New York, Boston, Salem, Buffalo Albany"

LISTAGG(City, ', ' ON OVERFLOW TRUNCATE '...') geeft als uitvoer "New York, New York, Boston, Salem, Buffalo, ..."

Systeemfuncties

Met de systeemfunctie USER worden waarden geretourneerd die betrekking hebben op de sessie. Bijvoorbeeld de gebruikersnaam waarmee u zich hebt aangemeld.

Functie Voorbeeld Beschrijving Syntaxis

DATABASE

 

Hiermee wordt de naam van het onderwerpgebied geretourneerd waarbij u bent aangemeld.

DATABASE()

USER

 

Hiermee wordt de gebruikersnaam van het semantische model geretourneerd waarbij u bent aangemeld.

USER()

Tijdreeksfuncties

Tijdreeksfuncties bieden u de mogelijkheid om gegevens te aggregeren en voorspellen op basis van tijddimensies. Zo kunt u de AGO-functie gebruiken om de opbrengsten van een jaar geleden te berekenen.

Tijddimensieleden moeten zich op of onder het niveau van de functie bevinden. Hierdoor moeten een of meer kolommen die leden op of onder het gegeven niveau uniek identificeren, in de query worden geprojecteerd.

Functie Voorbeeld Beschrijving Syntaxis

AGO

SELECT jaar_ID, AGO(verkoop, jaar, 1)

Hiermee berekent u de geaggregeerde waarde van een meting in een opgegeven periode in het verleden. Als u bijvoorbeeld de maandopbrengsten van een jaar geleden wilt berekenen, gebruikt u AGO(Revenue, Year, 1, SHIP_MONTH). Als u de kwartaalopbrengsten van het afgelopen kwartaal wilt berekenen, gebruikt u AGO(Revenue, Quarter, 1).

AGO(MEASURE, TIME_LEVEL, OFFSET)

Hierbij geldt het volgende:

  • MEASURE staat voor de eenheid om te berekenen, bijvoorbeeld de winst.
  • TIME_LEVEL staat voor het tijdsinterval. Dit moet 'Jaar', 'Kwartaal', 'Week' of 'Dag' zijn.
  • OFFSET staat voor het aantal tijdsintervallen om terug te rekenen, bijvoorbeeld '1' voor één jaar.

PERIODROLLING

SELECT maand_ID, PERIODROLLING (maandverkoop, -1, 1)

Berekent de aggregatie van een eenheid over de periode die x tijdseenheden vanaf de huidige tijd begint en y tijdseenheden vanaf de huidige tijd eindigt. Bijvoorbeeld: met PERIODROLLING kunnen de opbrengsten worden berekend voor een periode die begint in een kwartaal vóór en eindigt in een kwartaal na het huidige kwartaal.

PERIODROLLING(measure, x [,y])

Hierbij geldt het volgende:

  • MEASURE staat voor de naam van een eenheidkolom.
  • X is een geheel getal waarmee de offset vanaf het huidige tijdstip wordt aangegeven.
  • Y is een geheel getal waarmee het aantal tijdseenheden wordt aangegeven dat door de functie in de berekening wordt meegenomen.
  • HIERARCHY is een optioneel argument waarmee de naam van een hiërarchie in een tijddimensie wordt aangegeven, zoals YR, MON, DAY, en dat u wilt gebruiken om het tijdvenster te berekenen.

TODATE

SELECT jaar_ID, maand_ID, TODATE (verkoop, jaar)

Hiermee berekent u de geaggregeerde waarde van een meting vanaf het begin van een periode tot de laatste periode , bijvoorbeeld berekeningen voor jaar tot heden.

Als u bijvoorbeeld de verkoop voor jaar tot heden wilt berekenen, gebruikt u TODATE(sales, year).

TODATE(MEASURE, TIME_LEVEL)

Hierbij geldt het volgende:

  • MEASURE staat voor een uitdrukking die verwijst naar minimaal één eenheidkolom, bijvoorbeeld 'Verkoop'.
  • TIME_LEVEL staat voor het tijdsinterval. Dit moet 'Jaar', 'Kwartaal', 'Week' of 'Dag' zijn.