Függvények

Különböző típusú függvények vannak, amelyek kifejezésekben használhatók.

Témakörök:

Elemzési függvények

Az elemzési függvények lehetővé teszik az adatok feltárását olyan modellek segítségével, mint az előrejelzés, a trendvonal és a klaszter. Alternatív megoldásként az analitikai függvényeket áthúzhatja a munkafüzet-szerkesztőbe.

Szintén másik megoldásként előrejelzéseket, trendvonalakat és klasztereket is hozzáadhat a munkafüzethez, ha kijelöli őket a munkafüzet-szerkesztő Adatpaneljének Elemzések lapján. Lásd: Statisztikai elemzési függvények hozzáadása ábrázolásokhoz.

Függvény Példa Leírás Szintaxis

CLUSTER

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

A rekordok készletét gyűjti csoportokba egy vagy több bemeneti kifejezés alapján a K-közép vagy a hierarchikus fürtözés használatával.

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

FORECAST

Példa napi árbevételi előrejelzésre

Ez a példa napi árbevételi előrejelzés választását szemlélteti.

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

Példa éves és negyedéves árbevételi előrejelzésre

Ez a példa az évi és negyedévi árbevételi előrejelzés választását szemlélteti.

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

Az adatsorokon Exponential Smoothing (ETS), Seasonal ARIMA, ARIMA vagy Prophet használatával létrehoz egy megadott méretű idősorozat-modellt. Ez a függvény a numPeriods argumentum által megadott időközökhöz biztosít kimenetet.

Lásd a további FORECAST függvényopciókat alább.

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

Ahol:

  • A measure az előre jelezni kívánt mérőszámot jelöli, például a bevételi adatokat.

  • A series azt az időintervallumot jelöli, amelynek során az előrejelzési modell ki lett alakítva. Ez a sorozat egy- vagy több-idődimenziós oszlopok listája. A series elhagyása esetén az időintervallumok meghatározása a lekérdezésből történik.

  • Az output_column_name jelöli a forecast,low, high és predictionInterval érvényes oszlopneveit.

  • Az options jelöli a nevek/értékpárok pontosvesszővel (;) tagolt karakterlánc típusú listáját. Az értékek között lehet olyan %1 ... %N, amely a runtime_binded_options használatával határozható meg.

  • A runtime_binded_options jelöli az oszlopok és beállítások vesszővel tagolt listáját. Ezeknek az oszlopoknak és beállításoknak az értékeit egyéni végrehajtási idő alatt értékeli és oldja meg a rendszer.

Lásd a további FORECAST függvényopciókat alább.

OUTLIER

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

Rekordokat osztályoz kieső értékként egy vagy több bemeneti kifejezés alapján a K-közép vagy a hierarchikus fürtözés vagy a többeltéréses kieső érzékelése algoritmus használatával.

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

REGR

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

Az értékeket lineáris modellbe illeszti, és visszatér az illesztett értékekkel vagy a modellel. Ez a függvény használható arra, hogy két mérési értékre lineáris görbét illesszen.

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

Az Oracle azt javasolja, hogy megjelenítés megtekintésekor alkalmazzon TRENDLINE függvényt a Statisztika hozzáadása tulajdonság használatával. Lásd: Megjelenítési tulajdonságok módosítása.

Az értékeket lineáris, polinomiális vagy exponenciális modellbe illeszti, és az illesztett értékeket vagy modellt adja vissza. A numeric_expr képviseli a trend Y értékét, a series (időoszlopok) pedig az X értékét.

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

FORECAST függvényopciók A következő táblázat a FORECAST függvénnyel használható opciókat sorolja fel.

Beállítás neve Értékek Leírás
numPeriods Egész szám Az előrejelzendő időszakok száma.
predictionInterval 0 - 100, ahol a magasabb érték nagyobb megbízhatóságot határoz meg A becslésre vonatkozó megbízhatósági szint.
modelType

ETS (Exponenciális simítás)

SeasonalArima

ARIMA

Prophet

Az előrejelzéshez használt modell.
useBoxCox

TRUE

FALSE

Ha TRUE, akkor Box-Cox transzformáció használata.
lambdaValue Nem alkalmazható

A Box-Cox transzformáció paramétere.

Mellőzendő, ha NULL vagy a useBoxCox értéke FALSE.

Egyébként az adatok transzformálása a modell becslése előtt történik.

trendDamp

TRUE

FALSE

Ez specifikusan az Exponenciális simítás modellre vonatkozik.

Ha TRUE, akkor a csillapított trend használata. Ha FALSE vagy NULL, akkor a nem csillapított trend használata.

errorType

Nem alkalmazható

Ez specifikusan az Exponenciális simítás modellre vonatkozik.
trendType

N (egyik sem)

A (additív)

M (multiplikatív)

Z (automatikusan kiválasztva)

Ez specifikusan az Exponenciális simítás modellre vonatkozik
seasonType

N (egyik sem)

A (additív)

M (multiplikatív)

Z (automatikusan kiválasztva)

Ez specifikusan az Exponenciális simítás modellre vonatkozik
modelParamIC

ic_auto

ic_aicc

ic_bic

ic_auto (ez az alapértelmezett)

A modell kiválasztásához használt információkritérium (IC).

Átváltási függvények

Az átváltási függvények egy adott értéket egyik formából egy másikba váltanak át.

Függvény Példa Leírás Szintaxis

CAST

CAST(hiredate AS CHAR(40)) FROM employee

Egy kifejezés vagy egy null értékű literál adattípusát egy másik adattípusra változtatja. Például átalakíthat egy customer_name vevőnevet (CHAR vagy VARCHAR adattípus) vagy egy birthdate születési dátumot (dátum/idő literál).

A Date adattípusra módosításhoz a CAST függvényt használja.

Ne használja a TODATE függvényt.

CAST(expr AS type)

IFNULL

IFNULL(Sales, 0)

Ellenőrzi, hogy a kifejezésnek null érték-e az eredménye. Ha igen, hozzárendeli a megadott értéket a kifejezéshez.

IFNULL(expr, value)

INDEXCOL

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

Külső információkat használ a megfelelő oszlop visszaadásához, hogy a bejelentkezett felhasználó megtekinthesse azt.

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

Összehasonlít két kifejezést. Ha egyenlők, a függvény NULL értéket ad vissza. Ha nem egyenlők, a függvény az első kifejezést adja vissza. Nem adhat meg literális NULL értéket az első kifejezéshez.

NULLIF([expression], [expression])

To_DateTime

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

A DateTime formátumú karakterlánc-literált DateTime adattípussá alakítja.

To_DateTime([expression], [literal])

VALUEOF

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

A szűrőben egy szemantikus modellbeli változó értékére hivatkozik.

A VALUEOF függvénynél argumentumként használja az expr változókat. A statikus szemantikus modell változói név szerint kereshetők.

VALUEOF(expr)

Dátumkigyűjtési függvények

Ezek a függvények kalkulálják vagy lefelé kerekítik az időbélyeg értékeit a legközelebbi adott időszakra, például órára, napra, hétre, hónapra és negyedévre.

A számított időbélyegek segítségével összesítheti az adatokat egy másik részletesség használatával. Például az EXTRACTDAY() függvényt alkalmazhatja a vevőmegrendelés dátumára, hogy egy időbélyeget kalkuláljon azon a napon éjfélre, amikor a megrendelés történik, így napról napra összesítheti az adatokat.

Függvény Példa Leírás Szintaxis

A nap kivonatolása

EXTRACTDAY("Order Date")
  • 2/22/1967 de. 3:02:01 visszatérési értéke: 2/22/1967 de. 12:00:00.
  • 9/2/2022 de. 10:38:21 visszatérési értéke: 9/2/2022 de. 12:00:00.

Egy időbélyeget ad vissza éjfélre (de. 12) azon a napon, amikor a bemeneti érték megjelenik. Ha például a bemeneti időbélyeg február 22-én de. 3:02:01 időpontra szól, a függvény az időbélyeget február 22. de. 12:00:00 időpontra adja vissza.

EXTRACTDAY(expr)

Az óra kivonatolása

EXTRACTHOUR("Order Date")
  • 2/22/1967 de. 3:02:01 visszatérési értéke: 2/22/1967 de. 3:00:00.
  • 6/17/1999 du. 11:18:30 visszatérési értéke: 6/17/1999 du. 11:00:00.

Egy időbélyeget ad vissza az óra kezdetéhez, amelyben a bemeneti érték megjelenik. Ha például a bemeneti időbélyeg du. 11:18:30 időpontra szól, a függvény az időbélyeget du. 11:00:00 időpontra adja vissza.

EXTRACTHOUR (expr)

A nap órája kivonatolása

EXTRACTHOUROFDAY("Order Date")
  • 2014/09/24 10:58:00 visszatérési értéke: 2000/01/01 10:00:00.
  • 2014/08/13 11:10:00 visszatérési értéke: 2000/01/01 11:00:00

Egy időbélyeget ad vissza, ahol az óra a bemeneti érték órájával egyenlő, az év, hónap, nap, percek és másodpercek alapértelmezett értékeivel.

EXTRACTHOUROFDAY(expr)

Az ezredmásodperc értékének kivonatolása

EXTRACTMILLISECOND("Order Date")
  • 1997/01/07 15:32:02.150 visszatérési értéke: 1997/01/07 15:32:02.150.
  • 1997/01/07 18:42:01.265 visszatérési értéke: 1997/01/07 18:42:01.265.
Egy időbélyeget ad vissza, ami a bemeneti érték milliszekundumait tartalmazza. Ha például a bemeneti időbélyeg 15:32:02.150 időpontra szól, a függvény az időbélyeget 15:32:02.150 időpontra adja vissza.

EXTRACTMILLISECOND(expr)

A perc kivonatolása

EXTRACTMINUTE("Order Date")
  • 6/17/1999 du. 11:18:00 visszatérési érték: 6/17/1999 du. 11:18:00.
  • 9/2/2022 de. 10:38:21 visszatérési érték: 9/2/2022 de. 10:38:00.

Egy időbélyeget ad vissza a perc kezdetéhez, amelyben a bemeneti érték megjelenik. Ha például az időbélyeg de. 11:38:21 időpontra szól, a függvény az időbélyeget de. 11:38:00 időpontra adja vissza.

EXTRACTMINUTE (expr)

A hónap kivonatolása

EXTRACTMONTH("Order Date")
  • 2/22/1967 de. 3:02:01 visszatérési értéke: 2/1/1967 de. 12:00:00.
  • 6/17/1999 du. 11:18:00 visszatérési értéke: 6/1/1999 de. 12:00:00.

Egy időbélyeget ad vissza a hónap első napjához, amelyben a bemeneti érték megjelenik. Ha például az időbélyeg február 22. dátumra szól, a függvény az időbélyeget február 1. dátumra adja vissza.

EXTRACTMONTH(expr)

A negyedév kivonatolása

EXTRACTQUARTER("Order Date")
  • 2/22/1967 de. 3:02:01 visszatérési értéke: 1/1/1967 de. 12:00:00, az első pénzügyi negyedév első napja.
  • 6/17/1999 du. 11:18:00 visszatérési értéke: 4/1/1999 de. 12:00:00, a második pénzügyi negyedév első napja.

  • 9/2/2022 de. 10:38:21 visszatérési értéke: 7/1/2022 de. 12:00:00, a harmadik pénzügyi negyedév első napja.

    Tipp: A QUARTER (expr) használatával kiszámolhatja csak a negyedév sorszámát a visszaadott időbélyegből.

Egy időbélyeget ad vissza a negyedév első napjához, amelyben a bemeneti érték megjelenik. Ha például a bemeneti időbélyeg a harmadik pénzügyi évben jelenik meg, a függvény az időbélyeget július 1. dátumra adja vissza.

EXTRACTQUARTER(expr)

Az ezredmásodperc kivonatolása

EXTRACTSECOND("Order Date")
  • 1997/01/07 15:32:02.150 visszatérési értéke: 1997/01/07 15:32:02.
  • 1997/01/07 20:44:18.163 visszatérési értéke: 1997/01/07 20:44:18.

Egy időbélyeget ad vissza a bemeneti értékhez. Ha például a bemeneti időbélyeg 15:32:02.150 időpontra szól, a függvény az időbélyeget 15:32:02 időpontra adja vissza.

EXTRACTSECOND(expr)

A hét kivonatolása

EXTRACTWEEK("Order Date")
  • 2014/09/24 10:58:00 visszatérési értéke: 2014/09/21.

  • 2014/08/13 11:10:00 visszatérési értéke: 2014/08/10.

A hét első napjának (vasárnap) dátumát adja vissza, amelyben a bemeneti érték megjelenik. Ha például az időbélyeg szeptember 24. szerdára szól, a függvény az időbélyeget szeptember 21. vasárnapra adja vissza.

Megjegyzés: Ha a hét első napja (pl. vasárnap) egy korábbi évre esik (ezért negatív hatással lenne az összesítésre), a függvény a jelenlegi évben a hét hetedik napját (pl. szombat) adja vissza, nem pedig a hét első napját az előző évből. Például a 2024. 01. 01., 2024. 01. 02. és 2024. 01. 03. dátumok összesítésének mindegyike 2024. 01. 6. (szombat), nem pedig 2023. 12. 29. (vasárnap).

EXTRACTWEEK(expr)

Az év kivonatolása

EXTRACTYEAR("Order Date")
  • 1967/02/22 03:02:01 visszatérési értéke: 1967/01/01 00:00:00.
  • 1999/06/17 23:18:00 visszatérési értéke: 1999/01/01 00:00:00.

Egy időbélyeget ad vissza az év január 1. dátumára, amelyben a bemeneti érték megjelenik. Ha például az időbélyeg 1967-ben jelenik meg, a függvény az időbélyeget 1967. január 1. dátumra adja vissza.

EXTRACTYEAR (expr)

Tippek a dátumdimenziók használatához a témakörökben

Íme néhány tipp, hogyan érheti el a legjobb eredményeket, ha a témakörök dátumait használja a számításokban.

Témakör dátumának hozzáadása a számításhoz

Ha egy témakörből közvetlenül a számításba húz egy dátumot, és karakterláncként vagy egész számként dolgozza fel, hibaüzenetet kap. Ez azért történik, mert az alapul szolgáló dátumérték egy időbélyeg.

Ehelyett használja a Dátumkigyűjtési függvények egyikét a dátum értelmezéséhez.

Lehetnek például ezek a témakör dátumai.
A(z) GUID-39C55B3A-A055-45D3-9904-948680247C08-default.png leírása
.png ábra leírása

Ha hónapokat szeretne kivonni ezekből a témakörökből, használja az ExtractMonthOfYear függvényt:

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

Megjelenítési függvények

A megjelenítési függvényekkel lekérdezés eredményhalmazán lehet műveleteket végezni.

Függvény Példa Leírás Szintaxis

BottomN

BottomN(Sales, 10)

Egy kifejezés n legkisebb értékét adja vissza, növekvő sorrendben.

BottomN([NumericExpression], [integer])

FILTER

FILTER(Sales USING Product = 'widget')

Az adott előösszesítő szűrő segítségével kiszámítja a kifejezést.

FILTER(measure USING filter_expr)

MAVG

MAVG(Sales, 10)

Mozgó átlagot számol az eredményhalmazban lévő adatok utolsó n sorára, az aktuális sort is beleértve.

MAVG([NumericExpression], [integer])

MSUM

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

Mozgó összeget számol az adatok utolsó n sorára, az aktuális sort is beleértve.

Az első sor összege megegyezik az első sor numerikus kifejezésével. A második sor összege az adatok első két sorának összege alapján van kiszámítva és így tovább. Az n . sor elérése után az összeg kiszámítására az adatok utolsó n sora alapján kerül sor.

MSUM([NumericExpression], [integer])

NTILE

NTILE(Sales, 100)

Meghatározza az érték rangsorát a felhasználó által megadott tartomány vonatkozásában. A rangsorok tetszőleges tartományát képviselő egész számokat ad vissza. A példában egy 1 és 100 közötti tartomány látható, melynek legalacsonyabb értékesítési értéke = 1 és a legmagasabb értékesítési értéke = 100.

NTILE([NumericExpresssion], [integer])

PERCENTILE

PERCENTILE(Sales)

A kifejezés numerikus argumentumának eleget tevő egyes értékek százalékos rangsorát számolja ki. A percentilis rangsor 0 (1. percentilis) és 1 (100. percentilis) közötti szám lehet, a határokat is beleértve.

PERCENTILE([NumericExpression])

RANK

RANK(Sales)

A kifejezés numerikus argumentumának eleget tevő egyes értékek rangsorát számolja ki. A legnagyobb számértékhez az 1-es rangsor, majd egymás után a következő egész számmal (2, 3, 4,...) kifejezett rangsor rendelődik az egyes értékekhez. Ha az értékek egyezőek, azonos rangsorbeli értéket kapnak (például: 1, 1, 1, 4, 5, 5, 7...).

RANK([NumericExpression])

RCOUNT

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

A rekordok egy csoportját alkalmazza bemeneti értékként, és az eddig előforduló rekordok számát határozza meg.

RCOUNT([NumericExpression])

RMAX

SELECT month, profit, RMAX(profit) FROM sales

A rekordok egy csoportját alkalmazza bemeneti értékként, és az eddig előforduló rekordok alapján kiszámított maximális értéket jeleníti meg. A megadott adattípusnak rendezhetőnek kell lennie.

RMAX([NumericExpression])

RMIN

SELECT month, profit, RMIN(profit) FROM sales

A rekordok egy csoportját alkalmazza bemeneti értékként, és az eddig előforduló rekordok alapján kiszámított minimális értéket jeleníti meg. A megadott adattípusnak rendezhetőnek kell lennie.

RMIN([NumericExpression])

RSUM

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

A görgetett összeget számolja ki az eddig előforduló rekordok alapján.

Az első sor összege megegyezik az első sor numerikus kifejezésével. A második sor összege az adatok első két sorának összege alapján van kiszámítva és így tovább.

RSUM([NumericExpression])

TOPN

TOPN(Sales, 10)

Egy kifejezés n legnagyobb értékét adja vissza, csökkenő sorrendben.

TOPN([NumericExpression], [integer])

Tippek a megjelenítési függvények használatához

  • FILTER – Ha egy kimutatást tárgyterület felhasználásával készít, használja a tárgyterületen meghatározott hierarchiákat a hierarchiaoszlopok közvetlen szűrése helyett a számítás során. Más szóval, ha egy tárgyterületnek van hierarchiája az Idő\Pénzügyi év\Pénzügyi negyedév esetén, akkor kerülje a következőt:

    filter (<mérőszám> using fiscal_quarter = 'Q4')

    filter (<mérőszám> using fiscal_quarter = 'Q3')

    filter (<mérőszám> using fiscal_year = 'FY24')

Kiértékelési függvények

A kiértékelési függvények olyan adatbázisfüggvények, amelyeket kifejezések átadására használnak összetett számítások elvégzéséhez.

A beágyazott adatbázisfüggvényekhez egy vagy több oszlop szükséges. Az oszlopokra a függvényben %1 ... %N hivatkozik. A tényleges oszlopokat a függvény után kell felsorolni.

Függvény Példa Leírás Szintaxis

EVALUATE

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

A megadott adatbázisfüggvényt és igény szerint paraméterként a hivatkozott oszlopokat adja át kiértékelésre az adatbázisnak.

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

EVALUATE_AGGR

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

A megadott adatbázisfüggvényt és igény szerint paraméterként a hivatkozott oszlopokat adja át kiértékelésre az adatbázisnak. A függvény a GROUP BY utasításrésszel rendelkező összesítő függvények kezelésére szolgál.

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

Matematikai függvények

Az ebben a részben ismertetett matematikai függvények matematikai műveleteket hajtanak végre.

Függvény Példa Leírás Szintaxis

ABS

ABS(Profit)

Numerikus kifejezés abszolút értékét számítja ki.

expr: bármilyen, numerikus értéket eredményező kifejezés.

ABS(expr)

ACOS

ACOS(1)

Numerikus kifejezés arkusz koszinuszát számítja ki.

expr: bármilyen, numerikus értéket eredményező kifejezés.

ACOS(expr)

ASIN

ASIN(1)

Numerikus kifejezés arkusz szinuszát számítja ki.

expr: bármilyen, numerikus értéket eredményező kifejezés.

ASIN(expr)

ATAN

ATAN(1)

Numerikus kifejezés arkusz tangensét számítja ki.

expr: bármilyen, numerikus értéket eredményező kifejezés.

ATAN(expr)

ATAN2

ATAN2(1, 2)

Az y / x arkusz tangensét számítja ki, ahol y az első numerikus kifejezés, x pedig a második numerikus kifejezés.

ATAN2(expr1, expr2)

CEILING

CEILING(Profit)

Egy nem egész szám numerikus kifejezés értékét a következő legnagyobb egész számra kerekíti. Ha a numerikus kifejezés értéke egész szám, a CEILING függvény azt az egész számot adja vissza.

CEILING(expr)

COS

COS(1)

Numerikus kifejezés koszinuszát számítja ki.

expr: bármilyen, numerikus értéket eredményező kifejezés.

COS(expr)

COT

COT(1)

Numerikus kifejezés kotangensét számítja ki.

expr: bármilyen, numerikus értéket eredményező kifejezés.

COT(expr)

DEGREES

DEGREES(1)

A kifejezés értékét radiánból fokba számítja át.

expr: bármilyen, numerikus értéket eredményező kifejezés.

DEGREES(expr)

EXP

EXP(4)

A megadott hatvány értékét adja vissza. Az e n-edik hatványát számítja ki, ahol e a természetes logaritmus alapja.

EXP(expr)

ExtractBit

Int ExtractBit(1, 5)

Beolvass egy egész számban egy bizonyos helyen lévő bitet. A bit pozíciójának megfelelően a 0 vagy az 1 egész értéket adja vissza.

ExtractBit([Source Number], [Digits])

FLOOR

FLOOR(Profit)

Egy nem egész szám numerikus kifejezés értékét a következő legkisebb egész számra kerekíti. Ha a numerikus kifejezés értéke egész szám, a FLOOR függvény azt az egész számot adja vissza.

FLOOR(expr)

LOG

LOG(1)

Kifejezés természetes alapú logaritmusát számítja ki.

expr: bármilyen, numerikus értéket eredményező kifejezés.

LOG(expr)

LOG10

LOG10(1)

Kifejezés tízes alapú logaritmusát számítja ki.

expr: bármilyen, numerikus értéket eredményező kifejezés.

LOG10(expr)

MOD

MOD(10, 3)

Az első numerikus kifejezés értékét osztja a második numerikus kifejezés értékével, és a hányados maradékát adja vissza.

MOD(expr1, expr2)

PI

PI()

Visszatérési értéke a Pi állandó értéke.

PI()

POWER

POWER(Profit, 2)

Az első numerikus kifejezés értékét a második numerikus kifejezés értékével megadott hatványra emeli.

POWER(expr1, expr2)

RADIANS

RADIANS(30)

A kifejezés értékét fokból radiánba számítja át.

expr: bármilyen, numerikus értéket eredményező kifejezés.

RADIANS(expr)

RAND

RAND()

Visszatérési értéke 0 és 1 közötti (nem valódi) véletlen szám.

RAND()

RANDFromSeed

RAND(2)

Visszatérési értéke megadott értéken alapuló (nem valódi) véletlen szám. Egy megadott értékhez a véletlen számoknak ugyanazt a halmazát hozza létre a program.

RAND(expr)

ROUND

ROUND(2.166000, 2)

A numerikus kifejezés értékét n tizedesjegy pontosságú számra kerekíti.

expr: bármilyen, numerikus értéket eredményező kifejezés.

integer: tetszőleges pozitív egész szám, amely a tizedesjegyek számát adja meg.

ROUND(expr, integer)

SIGN

SIGN(Profit)

A következőket adja vissza:

  • 1, ha a numerikus kifejezés kiértékelésének eredménye pozitív szám

  • -1, ha a numerikus kifejezés kiértékelésének eredménye negatív szám

  • 0, ha numerikus kifejezés kiértékelésének eredménye nulla

SIGN(expr)

SIN

SIN(1)

Numerikus kifejezés szinuszát számítja ki.

SIN(expr)

SQRT

SQRT(7)

Numerikus kifejezés négyzetgyökét számítja ki. A numerikus kifejezés kiértékelésének eredménye nem lehet negatív szám.

SQRT(expr)

TAN

TAN(1)

Numerikus kifejezés tangensét számítja ki.

expr: bármilyen, numerikus értéket eredményező kifejezés.

TAN(expr)

TRUNCATE

TRUNCATE(45.12345, 2)

Tizedes számot megadott tizedesjegy pontosságú tizedes számra csonkolja.

expr: bármilyen, numerikus értéket eredményező kifejezés.

integer: tetszőleges pozitív egész szám, amely a tizedesvesszőtől jobbra eső karakterek számát jelöli.

TRUNCATE(expr, integer)

Görgetett összesítő függvények

A görgetett összesítő függvények több értéken végzett műveletek segítségével összesítő eredményeket hoznak létre.

Függvény Példa Leírás Szintaxis

MAVG

 

Mozgó átlagot számol az eredményhalmazban lévő adatok utolsó n sorára, az aktuális sort is beleértve.

Az expr numerikus értéket adó tetszőleges kifejezés. Az integer tetszőleges pozitív egész szám. Az adatok utolsó n számú sorának átlagát jelöli.

MAVG(expr, integer)

MSUM

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

Mozgó összeget számol az adatok utolsó n sorára, az aktuális sort is beleértve.

Az expr numerikus értéket adó tetszőleges kifejezés. Az integer tetszőleges pozitív egész szám. Az adatok utolsó n sorának összege.

MSUM(expr, integer)

RSUM

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

A görgetett összeget számolja ki az eddig előforduló rekordok alapján.

expr: bármilyen, numerikus értéket eredményező kifejezés.

RSUM(expr)

RCOUNT

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

A rekordok egy csoportját alkalmazza bemeneti értékként, és az eddig előforduló rekordok számát határozza meg.

Az expr tetszőleges adattípusú kifejezés.

RCOUNT(expr)

RMAX

SELECT month, profit,RMAX(profit) from sales_subject_area

A rekordok egy csoportját alkalmazza bemeneti értékként, és az eddig előforduló rekordok alapján kiszámított maximális értéket jeleníti meg.

Az expr tetszőleges adattípusú kifejezés.

RMAX(expr)

RMIN

select month, profit,RMIN(profit) from sales_subject_area

A rekordok egy csoportját alkalmazza bemeneti értékként, és az eddig előforduló rekordok alapján kiszámított minimális értéket jeleníti meg.

Az expr tetszőleges adattípusú kifejezés.

RMIN(expr)

Térbeli függvények

A Térbeli függvények lehetővé teszik, hogy földrajzi alapú elemzést végezzen, amikor az adat modellezését a következő használatával hajtja végre: Például kiszámíthatja két földrajzi terület (más néven alakzat vagy sokszög) közötti távolságot.

Megjegyzés:

Ezek a térbeli függvények egyéni számításokban munkafüzetek ábrázolásához nem használhatók.
Függvény Példa Leírás Szintaxis
GeometryArea

GeometryArea(Shape)

Az alakzat által elfoglalt területet számítja ki.

GeometryArea(Shape)

GeometryDistance

GeometryDistance(TRIP_START, TRIP_END)

A megadott két alakzat közötti távolságot számítja ki.

GeometryDistance(Shape 1, Shape 2)

GeometryLength

GeometryLength(Shape)

Az alakzat kerületét (körméretét) számítja ki.

GeometryLength(Shape)

GeometryRelate

GeometryRelate(TRIP_START, TRIP_END)

Azt határozza meg, hogy az egyik alakzat a másikon belüli-e. Visszatérési értéke TRUE vagy FALSE karakterláncként (varchar).

GeometryRelate(Shape 1, Shape 2)

GeometryWithinDistance

GeometryWithinDistance(TRIP_START, TRIP_END, 500)

Azt határozza meg, hogy két alakzat a megadott távolságon belül van-e egymástól. Visszatérési értéke TRUE vagy FALSE karakterláncként (varchar).

GeometryWithinDistance(Shape1, Shape2, DistanceInFloat)

Karakterlánc-függvények

A karakterlánc-függvények különböző karakterműveleteket hajtanak végre. A karakterláncokkal hajtanak végre műveleteket.

Függvény Példa Leírás Szintaxis

ASCII

ASCII('a')

Egyetlen karakterláncot a kapcsolódó ASCII kódba vált át (0 és 255 közötti érték). Ha a karakterlánc értékű kifejezés kiértékelésének eredménye több karakter, a visszatérési érték a kifejezés első karakterének megfelelő ASCII kód.

expr: bármilyen, karakterláncot eredményül adó kifejezés.

ASCII(expr)

BIT_LENGTH

BIT_LENGTH('abcdef')

Visszatérési értéke egy adott karakterlánc hossza bitben meghatározva. Minden Unicode karakter hosszúsága 2 bájt (azaz16 bit).

expr: bármilyen, karakterláncot eredményül adó kifejezés.

BIT_LENGTH(expr)

CHAR

CHAR(35)

0 és 255 közötti numerikus értéket az ASCII kódnak megfelelő karakterértékké vált át.

expr: bármilyen, 0 és 255 közötti numerikus értéket eredményül adó kifejezés.

CHAR(expr)

CHAR_LENGTH

CHAR_LENGTH(Customer_Name)

Visszatérési értéke a megadott karakterláncnak a karakterek számában kifejezett hossza. A karakterlánc elején és végén lévő üres karaktereket figyelmen kívül hagyja.

expr: bármilyen, karakterláncot eredményül adó kifejezés.

CHAR_LENGTH(expr)

CONCAT

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

Két karakterláncot fűz össze.

exprs: karakterláncokat eredményül adó kifejezések, vesszővel elválasztva.

A CONCAT függvényt nyers adatokkal, illetve nem formázott adatokkal használhatja.

CONCAT(expr1, expr2)

INSERT

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

Megadott karakterláncot szúr be másik karakterlánc megadott helyére.

expr1: bármilyen, karakterláncot eredményül adó kifejezés. A célkarakterláncot azonosítja.

integer1: tetszőleges pozitív egész szám, amely a karakterek számát jelöli a célkarakterlánc elejétől addig a karakterig, ahol a második karakterláncot be kell szúrni.

integer2: tetszőleges pozitív egész szám, amely a célkarakterláncban a második karakterlánccal lecserélendő karakterek számát jelenti.

expr2: bármilyen, karakterláncot eredményül adó kifejezés. A célkarakterláncba beszúrandó karakterláncot azonosítja.

INSERT(expr1, integer1, integer2, expr2)

LEFT

SELECT LEFT('123456', 3) FROM table

Visszatérési értéke a karakterláncnak megadott hosszúságú része balról (az elejétől) kezdve.

expr: bármilyen, karakterláncot eredményül adó kifejezés

integer: tetszőleges pozitív egész szám, amely a karakterláncból balról visszaadni kívánt karakterek számát jelöli.

LEFT(expr, integer)

LENGTH

LENGTH(Customer_Name)

Visszatérési értéke a megadott karakterláncnak a karakterek számában kifejezett hossza. A karakterlánc végén lévő üres karaktereket figyelmen kívül hagyja.

expr: bármilyen, karakterláncot eredményül adó kifejezés.

LENGTH(expr)

LOCATE

LOCATE('d' 'abcdef')

Visszatérési értéke az a karaktersorszám, ahol a megadott karakterlánc a másik karakterláncban megtalálható. Ha a karakterlánc nem található a másik karakterláncban, a függvény visszatérési értéke 0.

expr1: bármilyen, karakterláncot eredményül adó kifejezés. A keresett karakterláncot azonosítja.

expr2: bármilyen, karakterláncot eredményül adó kifejezés.

Azt a karakterláncot azonosítja, amelyben keresni kell.

LOCATE(expr1, expr2)

LOCATEN

LOCATEN('d' 'abcdef', 3)

Épp úgy, mint a LOCATE függvénynél, visszatérési értéke az a karaktersorszám, ahol a megadott karakterlánc a másik karakterláncban megtalálható. A LOCATEN függvény egy egész szám argumentumot tartalmaz, amelynek segítségével megadhatja a keresés kezdő pozícióját.

expr1: bármilyen, karakterláncot eredményül adó kifejezés. A keresett karakterláncot azonosítja.

expr2: bármilyen, karakterláncot eredményül adó kifejezés. Azt a karakterláncot azonosítja, amelyben keresni kell.

integer tetszőleges pozitív (nem nulla) egész szám, amely a karakterlánc keresésének kezdő pozícióját jelöli.

LOCATEN(expr1, expr2, integer)

LOWER

LOWER(Customer_Name)

Karakterláncot csupa kisbetűssé alakít át.

expr: bármilyen, karakterláncot eredményül adó kifejezés.

LOWER(expr)

OCTET_LENGTH

OCTET_LENGTH('abcdef')

Visszatérési értéke egy adott karakterlánc bájtjainak száma.

expr: bármilyen, karakterláncot eredményül adó kifejezés.

OCTET_LENGTH(expr)

POSITION

POSITION('d', 'abcdef')

Visszatérési értéke az a karaktersorszám, ahol strExpr1 a karakterkifejezésben megtalálható. Ha a strExpr1 nem található, a függvény visszatérési értéke 0.

expr1: bármilyen, karakterláncot eredményül adó kifejezés. A célkarakterláncban keresett karakterláncot azonosítja. Például: „d”.

expr2: bármilyen, karakterláncot eredményül adó kifejezés. Azt a célkarakterláncot azonosítja, amelyben keresni kell. Például: „abcdef”.

POSITION(expr1, expr2)

REPEAT

REPEAT('abc', 4)

Egy megadott kifejezést ismétel meg n alkalommal.

expr: bármilyen, karakterláncot eredményül adó kifejezés

integer: tetszőleges pozitív egész szám, amely azt adja meg, hogy hány alkalommal ismétlődjön a karakterlánc.

REPEAT(expr, integer)

REPLACE

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

Egy megadott, karakterlánc értékű kifejezésben egy vagy több karaktert egy vagy több másik karakterre cserél.

expr1: bármilyen, karakterláncot eredményül adó kifejezés. Azt a karakterláncot azonosítja, amelyben karaktereket kell lecserélni.

expr2: bármilyen, karakterláncot eredményül adó kifejezés. Ez a második karakterlánc azonosítja a cserélendő első karakterlánc karaktereit.

expr3: bármilyen, karakterláncot eredményül adó kifejezés. Ez a harmadik karakterlánc határozza meg, hogy mely karakterek kerüljenek az első karakterláncba.

REPLACE(expr1, expr2, expr3)

RIGHT

SELECT RIGHT('123456', 3) FROM table

Visszatérési értéke a karakterláncnak megadott hosszúságú része jobbról (a végétől) kezdve.

expr: bármilyen, karakterláncot eredményül adó kifejezés.

integer: tetszőleges pozitív egész szám, amely a karakterláncból jobbról visszaadni kívánt karakterek számát jelöli.

RIGHT(expr, integer)

SPACE

SPACE(2)

Üres szóközöket szúr be.

integer: tetszőleges pozitív egész szám, amely a beszúrandó szóközök számát adja meg.

SPACE(expr)

SUBSTRING

SUBSTRING('abcdef' FROM 2)

Megadott számú karakterből álló karakterláncot hoz létre az eredeti karakterlánc megadott pozíciójától kezdve.

expr: bármilyen, karakterláncot eredményül adó kifejezés.

A startPos olyan tetszőleges pozitív egész szám, amelyik a karakterek számát jelöli a karakterlánc balra eső szélétől számítva az eredmény kezdetéig.

SUBSTRING([SourceString] FROM [StartPostition])

SUBSTRINGN

SUBSTRING('abcdef' FROM 2 FOR 3)

Épp úgy, mint a SUBSTRING függvény, megadott számú karakterből álló karakterláncot hoz létre az eredeti karakterlánc megadott pozíciójától kezdve.

A SUBSTRINGN függvény egy egész szám argumentumot tartalmaz, amelynek segítségével megadhatja egy új karakterlánc hosszát, karakterszámban kifejezve.

expr: bármilyen, karakterláncot eredményül adó kifejezés.

A startPos olyan tetszőleges pozitív egész szám, amelyik a karakterek számát jelöli a karakterlánc balra eső szélétől számítva az eredmény kezdetéig.

SUBSTRING(expr FROM startPos FOR length)

TrimBoth

Trim(BOTH '_' FROM '_abcdef_')

Eltávolítja a karakterlánc elejéről és végéről a megadott karaktereket.

A char bármelyik egyetlen karakter lehet. Ha nem adja meg (vagy hiányzik a kötelező aposztróf), alapértelmezés szerint üres karaktert használ a függvény.

expr: bármilyen, karakterláncot eredményül adó kifejezés.

TRIM(BOTH char FROM expr)

TRIMLEADING

TRIM(LEADING '_' FROM '_abcdef')

Eltávolítja a karakterlánc elejéről a megadott karaktereket.

A char bármelyik egyetlen karakter lehet. Ha nem adja meg (vagy hiányzik a kötelező aposztróf), alapértelmezés szerint üres karaktert használ a függvény.

expr: bármilyen, karakterláncot eredményül adó kifejezés.

TRIM(LEADING char FROM expr)

TRIMTRAILING

TRIM(TRAILING '_' FROM 'abcdef_')

Eltávolítja a karakterlánc végéről a megadott karaktereket.

A char bármelyik egyetlen karakter lehet. Ha nem adja meg (vagy hiányzik a kötelező aposztróf), alapértelmezés szerint üres karaktert használ a függvény.

expr: bármilyen, karakterláncot eredményül adó kifejezés.

TRIM(TRAILING char FROM expr)

UPPER

UPPER(Customer_Name)

Karakterláncot csupa nagybetűssé alakít át.

expr: bármilyen, karakterláncot eredményül adó kifejezés.

UPPER(expr)

Tippek a LISTAGG használatához a karakterláncfüggvényekben

Íme néhány tipp a LISTAGG függvény használatához, hogy a legjobb eredményeket érje el a munkafüzetekben lévő karakterláncok kezelésekor. Létrehozhat például egy karakterláncot, amely egy adatoszlop összes városát tartalmazza.

Több érték összefűzése:

Használja a LISTAGG-t több karakterláncérték egy cellába és egy sorba való összefűzéséhez.

LISTAGG([DISTINCT] <column to concatenate> BY <grouping column>) ON OVERFLOW TRUNCATE
  • DISTINCT – Ha az értékek nem egyediek, az ismétlődő értékek eltávolításához használja ezt az argumentumot.
  • ON OVERFLOW TRUNCATE – Ha az eredmény meghaladja a megengedett maximális hosszt, ezzel az argumentummal csonkolhatja a visszaadott karakterláncot.
Mintaadatok
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

Példa parancsokra és kimenetre

LISTAGG(City, ', ') kimenetei: "New York, New York, Boston, Salem, Buffalo, Buffalo, Albany"

LISTAGG(DISTINCT City, ', ') kimenetei: "New York, Boston, Salem, Buffalo Albany"

LISTAGG(City, ', ' ON OVERFLOW TRUNCATE '...') kimenetei: "New York, New York, Boston, Salem, Buffalo, ..."

Rendszerfüggvények

A USER rendszerfüggvény a munkamenetre vonatkozó értékeket ad vissza. Például a felhasználónév, amivel bejelentkezett.

Függvény Példa Leírás Szintaxis

DATABASE

 

A tárgyterület nevét adja vissza, amelyikre bejelentkezett.

DATABASE()

USER

 

A szemantikus modell felhasználónevét adja vissza, amelybe be van jelentkezve.

USER()

Idősoros függvények

Az idősoros függvények lehetővé teszik adatok idődimenziók alapján történő összesítését és előrejelzését. Például, használhatja az AGO függvényt az egy évvel ezelőtti bevétel kiszámításához.

Az idődimenzió tagjainak a függvény szintjén vagy az alatt kell lenniük. Éppen ezért a lekérdezésben fel kell sorolni egy vagy több olyan oszlopot, amely egyedileg azonosítja az adott szinten lévő vagy az alatti tagokat.

Függvény Példa Leírás Szintaxis

AGO

SELECT Year_ID, AGO(sales, year, 1)

Egy mérőszám összesített értékét számítja ki adott múltbeli időszakig. Például, az egy évvel ezelőtti havi bevétel kiszámításához: AGO(Revenue, Year, 1, SHIP_MONTH). Az előző negyedév negyedéves bevételének kiszámításához: AGO(Revenue, Quarter, 1).

AGO(MEASURE, TIME_LEVEL, OFFSET)

Ahol:

  • A MEASURE azt a mérőszámot jelöli, amely például a bevétel kiszámításához szükséges.
  • A TIME_LEVEL az az időintervallum, amely lehet év, negyedév, hónap, hét vagy nap.
  • Az OFFSET azon időintervallumok száma, amennyivel visszafelé kell számítani. Például: 1 = egy év.

PERIODROLLING

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

Egy mérőszám összesítését számítja arra az időszakra, ami az aktuális időponttól x időegységre kezdődik, és y időegységre végződik. A PERIODROLLING például ki tudja számítani az értékesítést arra az időszakra, amely az aktuális negyedév előtt egy negyedévvel kezdődik, és utána egy negyedévvel fejeződik be.

PERIODROLLING(measure, x [,y])

Ahol:

  • A MEASURE egy mérőszámoszlop nevét jelöli.
  • Az X az aktuális időponttól való eltolást megadó egész szám.
  • Az Y egy egész szám, amely azon időegységek számát adja meg, amelyekre a függvény a számítást végrehajtja.
  • A hierarchy nem kötelező argumentum, amely annak a hierarchiának a nevét határozza meg az idődimenzióban, például YR, MON, DAY, amelyet az időtartomány kiszámításához kíván használni.

TODATE

SELECT Year_ID, Month_ID, TODATE (sales, year)

Kiszámítja egy mérőszám összesített értékét egy időszak kezdetétől a legutóbbi időszakig, például: „év a tárgynapig” számítások.

Például, az „Év a tárgynapig” értékesítések kiszámításához használja a következőt: TODATE(sales, year).

TODATE(MEASURE, TIME_LEVEL)

Ahol:

  • A MEASURE egy legalább egy mérőszámoszlopra (például: értékesítés) hivatkozó tetszőleges kifejezés.
  • A TIME_LEVEL az az időintervallum, amely lehet év, negyedév, hónap, hét vagy nap.