Funzioni

Sono disponibili diversi tipi di funzioni che è possibile utilizzare nelle espressioni.

Argomenti:

Funzioni analitiche

Le funzioni di analitica consentono di esplorare i dati usando modelli quali previsione, linea di tendenza e cluster. In alternativa, è possibile trascinare la selezione delle funzioni di analitica nell'editor della cartella di lavoro.

In alternativa, è possibile aggiungere previsioni, linee di tendenza e cluster a una cartella di lavoro selezionandoli nella scheda Analitica del Pannello dati nell'editor della cartella di lavoro. Vedere Aggiungere funzioni di analitica statistica alle visualizzazioni.

Funzione Esempio Descrizione Sintassi

CLUSTER

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

Raccoglie un set di record in gruppi, in base a una o più espressioni di input utilizzando gli algoritmi K-Means o di cluster gerarchico.

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

FORECAST

Esempio di previsione dei ricavi in base al giorno

In questo esempio viene selezionata la previsione dei ricavi in base al giorno.

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

Esempio di previsione dei ricavi in base all'anno e al trimestre

In questo esempio viene selezionata la previsione dei ricavi in base all'anno e al trimestre.

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

Crea un modello di serie temporali della misura specificata nelle serie utilizzando il livellamento esponenziale (ETS), ARIMA stagionale o ARIMA. Questa funzione consente di ottenere una previsione per il set di periodi specificato dall'argomento numPeriods.

Vedere anche le opzioni aggiuntive della funzione FORECAST riportate di seguito.

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

Dove:

  • measure rappresenta la misura da prevedere, ad esempio i dati relativi ai ricavi.

  • series rappresenta la granularità temporale utilizzata per la creazione del modello di previsione. Si tratta di una lista di una o più colonne della dimensione tempo. Se si omette series, la granularità temporale viene determinata dalla query.

  • output_column_name rappresenta i nomi di colonna validi di forecast, low, high e predictionInterval.

  • options rappresenta una lista di stringhe di coppie di nomi e valori separate da punti e virgola (;). Il valore può includere %1 ... %N, specificato in runtime_binded_options.

  • runtime_binded_options rappresenta una lista separata da virgole di colonne e opzioni. I valori per queste colonne ed opzioni vengono valutati e risolti durante l'esecuzione della singola query.

Vedere anche le opzioni aggiuntive della funzione FORECAST riportate di seguito.

OUTLIER

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

Classifica un record come valore anomalo in base a una o più espressioni di input utilizzando gli algoritmi K-Means, di cluster gerarchico o di rilevamento dei valori anomali in più variabili.

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

REGR

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

Adatta un modello lineare e restituisce i valori o il modello adattati. Questa funzione può essere utilizzata per adattare una curva lineare su due misure.

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 consiglia di applicare una linea di tendenza utilizzando la proprietà Aggiungi statistiche durante la revisione di una visualizzazione. Vedere Adeguare le proprietà della visualizzazione.

Adatta un modello lineare, polinomiale o esponenziale e restituisce i valori o il modello adattati. numeric_expr rappresenta il valore Y della tendenza mentre series (colonne relative al tempo) rappresenta il valore X.

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

Opzioni della funzione FORECAST Nella tabella seguente vengono elencate le opzioni che è possibile utilizzare con la funzione FORECAST.

Nome opzione Valori Descrizione
numPeriods Numero intero Il numero di periodi per la previsione.
predictionInterval Da 0 a 100, dove i valori più alti specificano una confidenza maggiore. Il livello di probabilità per la previsione.
modelType

ETS (Livellamento esponenziale)

SeasonalArima

ARIMA

Il modello da utilizzare per la previsione.
useBoxCox

TRUE

FALSE

Se TRUE, utilizzare la trasformazione Box-Cox.
lambdaValue Non applicabile

Parametro di trasformazione Box-Cox.

Ignorare se NULL o quando useBoxCox è FALSE.

In caso contrario, i dati vengono trasformati prima che il modello venga stimato.

trendDamp

TRUE

FALSE

Si tratta di un valore specifico del modello di livellamento esponenziale.

Se TRUE, utilizzare la tendenza attenuata. Se FALSE o NULL, utilizzare la tendenza non attenuata.

errorType

Non applicabile

Si tratta di un valore specifico del modello di livellamento esponenziale.
trendType

N (nessuno)

A (additivo)

M (moltiplicativo)

Z (selezionato automaticamente)

Si tratta di un valore specifico del modello di livellamento esponenziale
seasonType

N (nessuno)

A (additivo)

M (moltiplicativo)

Z (selezionato automaticamente)

Si tratta di un valore specifico del modello di livellamento esponenziale
modelParamIC

ic_auto

ic_aicc

ic_bic

ic_auto (impostazione predefinita)

Il criterio di informazione utilizzato nella selezione del modello.

Funzioni di conversione

Le funzioni di conversione convertono un valore da un formato a un altro.

Funzione Esempio Descrizione Sintassi

CAST

CAST(hiredate AS CHAR(40)) FROM employee

Modifica il tipo di dati di un'espressione o un valore nullo in un altro tipo di dati. Ad esempio, è possibile assegnare un valore customer_name (un tipo di dati CHAR o VARCHAR) oppure un valore birthdate (un valore data e ora).

Utilizzare CAST per cambiare il tipo di dati in Date.

Non utilizzare TODATE.

CAST(expr AS type)

IFNULL

IFNULL(Sales, 0)

Esegue il test di un'espressione per verificare se restituisce un valore nullo e, in tal caso, assegna il valore specificato all'espressione.

IFNULL(expr, value)

INDEXCOL

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

Utilizza le informazioni esterne per restituire la colonna appropriata che può essere visualizzata dall'utente collegato.

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

Confronta due espressioni. Se sono uguali, la funzione restituisce NULL. Se non sono uguali, la funzione restituisce la prima espressione. Non è possibile specificare il valore NULL per la prima espressione.

NULLIF([expression], [expression])

To_DateTime

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

Converte i valori stringa del formato DateTime nel tipo di dati DateTime.

To_DateTime([espressione], [valore])

VALUEOF

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

Fa riferimento al valore di una variabile di modello semantico in un filtro.

Utilizzare le variabili expr come argomenti della funzione VALUEOF. Fare riferimento alle variabili di modello semantico statico per nome.

VALUEOF(expr)

Funzioni di estrazione della data

Queste funzioni calcolano o arrotondano per difetto i valori dell'indicatore orario al periodo di tempo specificato più vicino, ad esempio ora, giorno, settimana, mese e trimestre.

È possibile usare gli indicatori orario calcolati per aggregare i dati utilizzando una granularità diversa. Ad esempio, è possibile applicare la funzione EXTRACTDAY() alle date degli ordini di vendita per calcolare un indicatore orario per la mezzanotte del giorno in cui si verificano gli ordini, in modo da poter aggregare i dati in base al giorno.

Funzione Esempio Descrizione Sintassi

Estrazione del giorno

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

Restituisce un indicatore orario per la mezzanotte (12:00) del giorno in cui si verifica il valore di input. Ad esempio, se l'indicatore orario di input è 3:02:01 AM del 22 febbraio, la funzione restituisce l'indicatore orario 12:00:00 AM del 22 febbraio.

EXTRACTDAY(expr)

Estrazione dell'ora

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

Restituisce un indicatore orario per l'inizio dell'ora in cui si verifica il valore di input. Ad esempio, se l'indicatore orario di input è 11:18:30 PM, la funzione restituisce l'indicatore orario 11:00:00 PM.

EXTRACTHOUR (expr)

Estrazione dell'ora del giorno

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

Restituisce un indicatore orario in cui l'ora è uguale all'ora del valore di input con i valori predefiniti per anno, mese, giorno, minuti e secondi.

EXTRACTHOUROFDAY(expr)

Estrazione dei millisecondi

EXTRACTMILLISECOND("Order Date")
  • 1997/01/07 15:32:02.150 restituisce 1997/01/07 15:32:02.150.
  • 1997/01/07 18:42:01.265 restituisce 1997/01/07 18:42:01.265.
Restituisce un indicatore orario contenente i millisecondi del valore di input. Ad esempio, se l'indicatore orario di input è 15:32:02.150, la funzione restituisce l'indicatore orario 15:32:02.150.

EXTRACTMILLISECOND(expr)

Estrazione dei minuti

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

Restituisce un indicatore orario per l'inizio del minuto in cui si verifica il valore di input. Ad esempio, se l'indicatore orario di input è 11:38:21 AM, la funzione restituisce l'indicatore orario 11:38:00 AM.

EXTRACTMINUTE (expr)

Estrazione del mese

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

Restituisce un indicatore orario per il primo giorno del mese in cui si verifica il valore di input. Ad esempio, se l'indicatore orario di input è 22 febbraio, la funzione restituisce l'indicatore orario 1 febbraio.

EXTRACTMONTH(expr)

Estrazione del trimestre

EXTRACTQUARTER("Order Date")
  • 2/22/1967 3:02:01 AM restituisce 1/1/1967 12:00:00 AM, il primo giorno del primo trimestre fiscale.
  • 6/17/1999 11:18:00 PM restituisce 4/1/1999 12:00:00 AM, il primo giorno del secondo trimestre fiscale.

  • 9/2/2022 10:38:21 AM restituisce 7/1/2022 12:00:00 AM, il primo giorno del terzo trimestre fiscale.

    Suggerimento: usare QUARTER (expr) per calcolare solo il trimestre ordinale dall'indicatore orario restituito.

Restituisce un indicatore orario per il primo giorno del trimestre in cui si verifica il valore di input. Ad esempio, se l'indicatore orario di input si verifica nel terzo trimestre fiscale, la funzione restituisce l'indicatore orario 1 luglio.

EXTRACTQUARTER(expr)

Estrazione dei secondi

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

Restituisce un indicatore orario contenente il valore di input. Ad esempio, se l'indicatore orario di input è 15:32:02.150, la funzione restituisce l'indicatore orario 15:32:02.

EXTRACTSECOND(expr)

Estrazione della settimana

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

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

Restituisce la data del primo giorno della settimana (domenica) in cui si verifica il valore di input. Ad esempio, se l'indicatore orario di input è mercoledì 24 settembre, la funzione restituisce l'indicatore orario domenica 21 settembre.

Note: se il primo giorno di una settimana (ad esempio la domenica) cade in un anno precedente e quindi influenzerebbe negativamente l'aggregazione, la funzione restituisce il 7° giorno della settimana (ad esempio il sabato) dell'anno corrente anziché il primo giorno della settimana dell'anno precedente. Ad esempio, 1/1/24, 1/2/24 e 1/3/24 si aggregano tutti a sabato 1/6/24, anziché a domenica 12/29/23.

EXTRACTWEEK(expr)

Estrazione dell'anno

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

Restituisce un indicatore orario per il primo gennaio dell'anno in cui si verifica il valore di input. Ad esempio, se l'indicatore orario di input si verifica nel 1967, la funzione restituisce l'indicatore orario 1 gennaio 1967.

EXTRACTYEAR (expr)

Suggerimenti sull'uso delle dimensioni data presenti nelle aree argomenti

Di seguito sono riportati alcuni suggerimenti su come ottenere i migliori risultati quando si utilizzano le date delle aree argomenti nei calcoli.

Aggiunta di una data di area argomenti a un calcolo

Se si trascina una data da un'area argomenti direttamente in un calcolo e la si elabora come stringa o numero intero, si riceverà un errore. Ciò si verifica perché il valore di base della data è un indicatore orario.

Utilizzare invece una delle Funzioni di estrazione della data per interpretare la data.

Ad esempio, è possibile disporre delle date di area argomenti riportate di seguito.
Segue la descrizione di GUID-39C55B3A-A055-45D3-9904-948680247C08-default.png
.png

Per estrarre i mesi da queste date di area argomenti, utilizzare la funzione ExtractMonthOfYear:

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

Funzioni di visualizzazione

Le funzioni di visualizzazione agiscono sul set di risultati di una query.

Funzione Esempio Descrizione Sintassi

BottomN

BottomN(Sales, 10)

Restituisce gli n valori più bassi dell'espressione, classificati dal più basso al più alto.

BottomN([NumericExpression], [integer])

FILTER

FILTER(Sales USING Product = 'widget')

Calcola l'espressione utilizzando il filtro preaggregato fornito.

FILTER(measure USING filter_expr)

MAVG

MAVG(Sales, 10)

Calcola una media mobile delle ultime n righe di dati, compresa la riga corrente, nel set di risultati.

MAVG([NumericExpression], [integer])

MSUM

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

Calcola una somma mobile delle ultime n righe di dati, compresa la riga corrente.

La somma della prima riga è uguale all'espressione numerica della prima riga. La somma della seconda riga viene calcolata in base alla somma delle prime due righe di dati e così via. Quando viene raggiunta l'ennesima riga, la somma viene calcolata in base alle ultime n righe di dati.

MSUM([NumericExpression], [integer])

NTILE

NTILE(Sales, 100)

Determina la classificazione di un valore in base a un intervallo specificato dall'utente. Restituisce numeri interi che rappresentano qualsiasi intervallo di classificazione. L'esempio mostra un intervallo compreso tra 1 e 100, con le vendite più basse = 1 e le vendite più alte = 100.

NTILE([NumericExpresssion], [integer])

PERCENTILE

PERCENTILE(Sales)

Calcola una classificazione in percentuale per ciascun valore che soddisfa l'argomento dell'espressione numerica. Gli intervalli delle classificazioni percentili sono compresi tra 0 (primo percentile) e 1 (centesimo percentile), inclusi.

PERCENTILE([NumericExpression])

RANK

RANK(Sales)

Calcola la classificazione di ciascun valore che soddisfa l'argomento dell'espressione numerica. Al numero più alto viene assegnata una classificazione pari a 1 e a ciascuna classificazione successiva viene assegnato il numero intero consecutivo successivo (2, 3, 4...). Agli eventuali valori uguali viene assegnata la stessa classificazione (ad esempio 1, 1, 1, 4, 5, 5, 7...).

RANK([NumericExpression])

RCOUNT

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

Accetta un set di record come input e conta il numero di record rilevato fino a quel momento.

RCOUNT([NumericExpression])

RMAX

SELECT month, profit, RMAX(profit) FROM sales

Accetta un set di record come input e indica il valore massimo in base ai record rilevati fino a quel momento. Il tipo di dati specificato deve supportare l'ordinamento.

RMAX([NumericExpression])

RMIN

SELECT month, profit, RMIN(profit) FROM sales

Accetta un set di record come input e indica il valore minimo in base ai record rilevati fino a quel momento. Il tipo di dati specificato deve supportare l'ordinamento.

RMIN([NumericExpression])

RSUM

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

Calcola una somma parziale in base ai record rilevati fino a quel momento.

La somma della prima riga è uguale all'espressione numerica della prima riga. La somma della seconda riga viene calcolata in base alla somma delle prime due righe di dati e così via.

RSUM([NumericExpression])

TOPN

TOPN(Sales, 10)

Restituisce gli n valori più alti dell'espressione, classificati dal più alto al più basso.

TOPN([NumericExpression], [integer])

Suggerimenti sull'uso delle funzioni di visualizzazione

  • FILTER: se si crea un report utilizzando un'area argomenti, utilizzare le gerarchie definite nell'area argomenti anziché filtrare le colonne della gerarchia direttamente in un calcolo. In altre parole, se un'area argomenti presenta una gerarchia per Tempo\Anno fiscale\Trimestre fiscale, non usare:

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

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

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

Funzioni di valutazione

Le funzioni di valutazione sono funzioni di database che possono essere utilizzate per passare espressioni per ottenere calcoli avanzati.

Le funzioni di database incorporate possono richiedere una o più colonne. Per far riferimento alle colonne si usa il formato %1 ... %N all'interno della funzione. Le colonne effettive devono essere elencate dopo la funzione.

Funzione Esempio Descrizione Sintassi

EVALUATE

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

Passa la funzione di database specificata con colonne di riferimento facoltative come parametri al database per la valutazione.

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

EVALUATE_AGGR

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

Passa la funzione di database specificata con colonne di riferimento facoltative come parametri al database per la valutazione. Questa funzione è destinata alle funzioni di aggregazione con clausola GROUP BY.

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

Funzioni matematiche

Le funzioni matematiche descritte in questa sezione eseguono operazioni matematiche.

Funzione Esempio Descrizione Sintassi

ABS

ABS(Profit)

Calcola il valore assoluto di un'espressione numerica.

expr rappresenta qualsiasi espressione che restituisce un valore numerico.

ABS(expr)

ACOS

ACOS(1)

Calcola l'arcocoseno di un'espressione numerica.

expr rappresenta qualsiasi espressione che restituisce un valore numerico.

ACOS(expr)

ASIN

ASIN(1)

Calcola l'arcoseno di un'espressione numerica.

expr rappresenta qualsiasi espressione che restituisce un valore numerico.

ASIN(expr)

ATAN

ATAN(1)

Calcola l'arcotangente di un'espressione numerica.

expr rappresenta qualsiasi espressione che restituisce un valore numerico.

ATAN(expr)

ATAN2

ATAN2(1, 2)

Calcola l'arcotangente di y /x, dove y è la prima espressione numerica e x è la seconda espressione numerica.

ATAN2(expr1, expr2)

CEILING

CEILING(Profit)

Arrotonda un'espressione numerica non intera al successivo numero intero più alto. Se l'espressione numerica restituisce un numero intero, la funzione CEILING restituisce tale numero.

CEILING(expr)

COS

COS(1)

Calcola il coseno di un'espressione numerica.

expr rappresenta qualsiasi espressione che restituisce un valore numerico.

COS(expr)

COT

COT(1)

Calcola la cotangente di un'espressione numerica.

expr rappresenta qualsiasi espressione che restituisce un valore numerico.

COT(expr)

DEGREES

DEGREES(1)

Converte un'espressione da radianti a gradi.

expr rappresenta qualsiasi espressione che restituisce un valore numerico.

DEGREES(expr)

EXP

EXP(4)

Invia il valore alla potenza specificata. Calcola e elevata all'ennesima potenza, dove e è la base dell'algoritmo naturale.

EXP(expr)

ExtractBit

Int ExtractBit(1, 5)

Recupera un bit in una determinata posizione in un numero intero. Restituisce un numero intero pari a 0 o 1 corrispondente alla posizione del bit.

ExtractBit([Source Number], [Digits])

FLOOR

FLOOR(Profit)

Arrotonda un'espressione numerica non intera al successivo numero intero più basso. Se l'espressione numerica restituisce un numero intero, la funzione FLOOR restituisce tale numero.

FLOOR(expr)

LOG

LOG(1)

Calcola il logaritmo naturale di un'espressione.

expr rappresenta qualsiasi espressione che restituisce un valore numerico.

LOG(expr)

LOG10

LOG10(1)

Calcola il logaritmo di base 10 di un'espressione.

expr rappresenta qualsiasi espressione che restituisce un valore numerico.

LOG10(expr)

MOD

MOD(10, 3)

Divide la prima espressione numerica per la seconda espressione numerica e restituisce la parte resto del quoziente.

MOD(expr1, expr2)

PI

PI()

Restituisce il valore costante di pi.

PI()

POWER

POWER(Profit, 2)

Utilizza la prima espressione numerica elevandola alla potenza specificata nella seconda espressione numerica.

POWER(expr1, expr2)

RADIANS

RADIANS(30)

Converte un'espressione da gradi a radianti.

expr rappresenta qualsiasi espressione che restituisce un valore numerico.

RADIANS(expr)

RAND

RAND()

Restituisce un numero pseudo casuale compreso tra 0 e 1.

RAND()

RANDFromSeed

RAND(2)

Restituisce un numero pseudo casuale basato su un valore di partenza. Per un determinato valore di partenza viene generato lo stesso set di numeri casuali.

RAND(expr)

ROUND

ROUND(2.166000, 2)

Arrotonda un'espressione numerica a n cifre di precisione.

expr rappresenta qualsiasi espressione che restituisce un valore numerico.

integer rappresenta qualsiasi numero intero positivo corrispondente al numero di cifre di precisione.

ROUND(expr, integer)

SIGN

SIGN(Profit)

Restituisce quanto riportato di seguito.

  • 1 se l'argomento dell'espressione numerica restituisce un numero positivo;

  • -1 se l'argomento dell'espressione numerica restituisce un numero negativo;

  • 0 se l'argomento dell'espressione numerica restituisce zero.

SIGN(expr)

SIN

SIN(1)

Calcola il seno di un'espressione numerica.

SIN(expr)

SQRT

SQRT(7)

Calcola la radice quadrata dell'argomento dell'espressione numerica. Quest'ultima deve restituire un numero non negativo.

SQRT(expr)

TAN

TAN(1)

Calcola la tangente di un'espressione numerica.

expr rappresenta qualsiasi espressione che restituisce un valore numerico.

TAN(expr)

TRUNCATE

TRUNCATE(45.12345, 2)

Tronca la parte decimale di un numero per restituire il numero di posizioni specificato partendo dal separatore decimale.

expr rappresenta qualsiasi espressione che restituisce un valore numerico.

integer rappresenta qualsiasi numero intero positivo corrispondente al numero di caratteri a destra della posizione decimale da restituire.

TRUNCATE(expr, integer)

Funzioni Aggregato parziale

Le funzioni Aggregato parziale consentono di eseguire operazioni su più valori per creare risultati di riepilogo.

Funzione Esempio Descrizione Sintassi

MAVG

 

Calcola una media mobile delle ultime n righe di dati, compresa la riga corrente, nel set di risultati.

expr rappresenta qualsiasi espressione che restituisce un valore numerico. integer è un numero intero positivo qualsiasi. Rappresenta la media delle ultime n righe di dati.

MAVG(expr, integer)

MSUM

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

Calcola una somma mobile delle ultime n righe di dati, compresa la riga corrente.

expr rappresenta qualsiasi espressione che restituisce un valore numerico. integer è un numero intero positivo qualsiasi. Rappresenta la somma delle ultime n righe di dati.

MSUM(expr, integer)

RSUM

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

Calcola una somma parziale in base ai record rilevati fino a quel momento.

expr rappresenta qualsiasi espressione che restituisce un valore numerico.

RSUM(expr)

RCOUNT

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

Accetta un set di record come input e conta il numero di record rilevato fino a quel momento.

expr rappresenta un'espressione di un tipo di dati qualsiasi.

RCOUNT(expr)

RMAX

SELECT month, profit,RMAX(profit) from sales_subject_area

Accetta un set di record come input e indica il valore massimo in base ai record rilevati fino a quel momento.

expr rappresenta un'espressione di un tipo di dati qualsiasi.

RMAX(expr)

RMIN

select month, profit,RMIN(profit) from sales_subject_area

Accetta un set di record come input e indica il valore minimo in base ai record rilevati fino a quel momento.

expr rappresenta un'espressione di un tipo di dati qualsiasi.

RMIN(expr)

Funzioni spaziali

Le funzioni spaziali consentono di eseguire l'analisi geografica quando si modellano i dati. Ad esempio, è possibile calcolare la distanza tra due aree geografiche, dette forme o poligoni.

Nota:

Non è possibile utilizzare queste funzioni spaziali nei calcoli personalizzati per le cartelle di lavoro di visualizzazione.
Funzione Esempio Descrizione Sintassi
GeometryArea

GeometryArea(Shape)

Calcola l'area occupata da una forma.

GeometryArea(Shape)

GeometryDistance

GeometryDistance(TRIP_START, TRIP_END)

Calcola la distanza tra due forme.

GeometryDistance(Shape 1, Shape 2)

GeometryLength

GeometryLength(Shape)

Calcola la circonferenza di una forma.

GeometryLength(Shape)

GeometryRelate

GeometryRelate(TRIP_START, TRIP_END)

Determina se una forma si trova all'interno di un'altra forma. Restituisce TRUE o FALSE sotto forma di stringa (varchar).

GeometryRelate(Shape 1, Shape 2)

GeometryWithinDistance

GeometryWithinDistance(TRIP_START, TRIP_END, 500)

Determina se due forme si trovano entro la distanza specificata l'una dall'altra. Restituisce TRUE o FALSE sotto forma di stringa (varchar).

GeometryWithinDistance(Shape1, Shape2, DistanceInFloat)

Funzioni di stringa

Le funzioni di stringa consentono di eseguire varie operazioni di manipolazione sui caratteri. Vengono applicate su stringhe di caratteri.

Funzione Esempio Descrizione Sintassi

ASCII

ASCII('a')

Converte una stringa di caratteri singoli nel codice ASCII corrispondente, tra 0 e 255. Se l'espressione restituisce più caratteri, viene restituito il codice ASCII corrispondente al primo carattere dell'espressione.

expr rappresenta qualsiasi espressione che restituisce una stringa di caratteri.

ASCII(expr)

BIT_LENGTH

BIT_LENGTH('abcdef')

Restituisce la lunghezza, in bit, di una stringa specificata. Ogni carattere Unicode ha una lunghezza di 2 byte (corrispondente a 16 bit).

expr rappresenta qualsiasi espressione che restituisce una stringa di caratteri.

BIT_LENGTH(expr)

CHAR

CHAR(35)

Converte un valore numerico compreso tra 0 e 255 nel valore del carattere corrispondente in codice ASCII.

expr rappresenta qualsiasi espressione che restituisce un valore numerico compreso tra 0 e 255.

CHAR(expr)

CHAR_LENGTH

CHAR_LENGTH(Customer_Name)

Restituisce la lunghezza, in numero di caratteri, di una stringa specificata. Gli spazi iniziali e finali non vengono contati.

expr rappresenta qualsiasi espressione che restituisce una stringa di caratteri.

CHAR_LENGTH(expr)

CONCAT

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

Concatena due stringhe di caratteri.

exprs rappresenta le espressioni, separate da virgole, che restituiscono stringhe di caratteri.

Con CONCAT è necessario utilizzare dati di tipo RAW e non dati formattati.

CONCAT(expr1, expr2)

INSERT

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

Inserisce una stringa di caratteri specificata in una determinata posizione di un'altra stringa di caratteri.

expr1 rappresenta qualsiasi espressione che restituisce una stringa di caratteri. Identifica la stringa di caratteri di destinazione.

integer1 rappresenta qualsiasi numero intero positivo corrispondente al numero di caratteri dall'inizio della stringa di destinazione dove la seconda stringa deve essere inserita.

integer2 rappresenta qualsiasi numero intero positivo corrispondente al numero di caratteri nella stringa di destinazione sostituiti dalla seconda stringa.

expr2 rappresenta qualsiasi espressione che restituisce una stringa di caratteri. Identifica la stringa di caratteri da inserire nella stringa di destinazione.

INSERT(expr1, integer1, integer2, expr2)

LEFT

SELECT LEFT('123456', 3) FROM table

Restituisce un numero specificato di caratteri dalla sinistra di una stringa.

expr rappresenta qualsiasi espressione che restituisce una stringa di caratteri.

integer rappresenta qualsiasi numero intero positivo corrispondente al numero di caratteri dalla sinistra della stringa da restituire.

LEFT(expr, integer)

LENGTH

LENGTH(Customer_Name)

Restituisce la lunghezza, in numero di caratteri, di una stringa specificata. La lunghezza viene restituita escludendo qualsiasi carattere vuoto finale.

expr rappresenta qualsiasi espressione che restituisce una stringa di caratteri.

LENGTH(expr)

LOCATE

LOCATE('d' 'abcdef')

Restituisce la posizione numerica di una stringa di caratteri in un'altra stringa di caratteri. Se la stringa di caratteri non viene trovata nella stringa in cui viene eseguita la ricerca, la funzione restituisce un valore pari a 0.

expr1 rappresenta qualsiasi espressione che restituisce una stringa di caratteri. Identifica la stringa da cercare.

expr2 rappresenta qualsiasi espressione che restituisce una stringa di caratteri.

Identifica la stringa da cercare.

LOCATE(expr1, expr2)

LOCATEN

LOCATEN('d' 'abcdef', 3)

Analogamente alla funzione LOCATE, restituisce la posizione numerica di una stringa di caratteri in un'altra stringa di caratteri. LOCATEN include un argomento numero intero che consente di specificare la posizione di partenza per iniziare la ricerca.

expr1 rappresenta qualsiasi espressione che restituisce una stringa di caratteri. Identifica la stringa da cercare.

expr2 rappresenta qualsiasi espressione che restituisce una stringa di caratteri. Identifica la stringa da cercare.

integer è qualsiasi numero intero positivo (diverso da zero) che rappresenta la posizione da cui iniziare la ricerca della stringa di caratteri.

LOCATEN(expr1, expr2, integer)

LOWER

LOWER(Customer_Name)

Converte una stringa di caratteri in lettere minuscole.

expr rappresenta qualsiasi espressione che restituisce una stringa di caratteri.

LOWER(expr)

OCTET_LENGTH

OCTET_LENGTH('abcdef')

Restituisce il numero di byte di una stringa specificata.

expr rappresenta qualsiasi espressione che restituisce una stringa di caratteri.

OCTET_LENGTH(expr)

POSITION

POSITION('d', 'abcdef')

Restituisce la posizione numerica di strExpr1 in un'espressione di caratteri. Se strExpr1 non viene trovata, la funzione restituisce 0.

expr1 rappresenta qualsiasi espressione che restituisce una stringa di caratteri. Identifica la stringa da cercare nella stringa di destinazione. Ad esempio, "d".

expr2 rappresenta qualsiasi espressione che restituisce una stringa di caratteri. Identifica la stringa di destinazione da cercare. Ad esempio, "abcdef".

POSITION(expr1, expr2)

REPEAT

REPEAT('abc', 4)

Ripete n volte un'espressione specificata.

expr rappresenta qualsiasi espressione che restituisce una stringa di caratteri.

integer rappresenta qualsiasi numero intero positivo che indica il numero di volte che la stringa di caratteri deve essere ripetuta.

REPEAT(expr, integer)

REPLACE

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

Sostituisce uno o più caratteri di un'espressione di caratteri specificata con uno o più caratteri.

expr1 rappresenta qualsiasi espressione che restituisce una stringa di caratteri. Questa è la stringa in cui i caratteri devono essere sostituiti.

expr2 rappresenta qualsiasi espressione che restituisce una stringa di caratteri. Questa seconda stringa identifica i caratteri della prima stringa che devono essere sostituiti.

expr3 rappresenta qualsiasi espressione che restituisce una stringa di caratteri. Questa terza stringa specifica i caratteri da sostituire nella prima stringa.

REPLACE(expr1, expr2, expr3)

RIGHT

SELECT RIGHT('123456', 3) FROM table

Restituisce un numero specificato di caratteri dalla destra di una stringa.

expr rappresenta qualsiasi espressione che restituisce una stringa di caratteri.

integer rappresenta qualsiasi numero intero positivo corrispondente al numero di caratteri dalla destra della stringa da restituire.

RIGHT(expr, integer)

SPACE

SPACE(2)

Inserisce spazi vuoti.

integer rappresenta qualsiasi numero intero positivo corrispondente al numero di spazi da inserire.

SPACE(expr)

SUBSTRING

SUBSTRING('abcdef' FROM 2)

Crea una nuova stringa a partire da un numero fisso di caratteri nella stringa originale.

expr rappresenta qualsiasi espressione che restituisce una stringa di caratteri.

startPos è qualsiasi numero intero positivo che rappresenta il numero di caratteri dall'inizio del lato sinistro della stringa da cui deve iniziare il risultato.

SUBSTRING([SourceString] FROM [StartPostition])

SUBSTRINGN

SUBSTRING('abcdef' FROM 2 FOR 3)

Analogamente a SUBSTRING, crea una nuova stringa iniziando da un numero fisso di caratteri nella stringa originale.

SUBSTRINGN include un argomento numero intero che consente di specificare la lunghezza della nuova stringa, in numero di caratteri.

expr rappresenta qualsiasi espressione che restituisce una stringa di caratteri.

startPos è qualsiasi numero intero positivo che rappresenta il numero di caratteri dall'inizio del lato sinistro della stringa da cui deve iniziare il risultato.

SUBSTRING(expr FROM startPos FOR length)

TrimBoth

Trim(BOTH '_' FROM '_abcdef_')

Cancella i caratteri iniziali e finali specificati da una stringa di caratteri.

char rappresenta qualsiasi carattere singolo. Se si omettono questa specifica e gli apici obbligatori, un carattere vuoto viene utilizzato come valore predefinito.

expr rappresenta qualsiasi espressione che restituisce una stringa di caratteri.

TRIM(BOTH char FROM expr)

TRIMLEADING

TRIM(LEADING '_' FROM '_abcdef')

Cancella i caratteri iniziali specificati da una stringa di caratteri.

char rappresenta qualsiasi carattere singolo. Se si omettono questa specifica e gli apici obbligatori, un carattere vuoto viene utilizzato come valore predefinito.

expr rappresenta qualsiasi espressione che restituisce una stringa di caratteri.

TRIM(LEADING char FROM expr)

TRIMTRAILING

TRIM(TRAILING '_' FROM 'abcdef_')

Cancella i caratteri finali specificati da una stringa di caratteri.

char rappresenta qualsiasi carattere singolo. Se si omettono questa specifica e gli apici obbligatori, un carattere vuoto viene utilizzato come valore predefinito.

expr rappresenta qualsiasi espressione che restituisce una stringa di caratteri.

TRIM(TRAILING char FROM expr)

UPPER

UPPER(Customer_Name)

Converte una stringa di caratteri in lettere maiuscole.

expr rappresenta qualsiasi espressione che restituisce una stringa di caratteri.

UPPER(expr)

Suggerimenti sull'uso delle funzioni di stringa

Di seguito sono riportati alcuni suggerimenti su come ottenere i migliori risultati quando si utilizzano le funzioni di stringa nelle cartelle di lavoro.

Concatenare più valori:

Usare LISTAGG per concatenare più valori in una cella e una riga.

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

Aggiungere on overflow truncate se la stringa risultate è troppo lunga e aggiungere distinct se i valori non sono univoci.

Ad esempio:

listagg(distinct City_ID by STATE on overflow truncate)

Funzioni di sistema

La funzione di sistema USER restituisce i valori relativi alla sessione. Ad esempio, il nome utente utilizzato per collegarsi.

Funzione Esempio Descrizione Sintassi

DATABASE

 

Restituisce il nome dell'area argomenti a cui si è collegati.

DATABASE()

USER

 

Restituisce il nome utente per il modello semantico a cui si è connessi.

USER()

Funzioni di serie temporali

Le funzioni di serie temporali consentono di aggregare e prevedere dati in base alle dimensioni tempo. Ad esempio, è possibile utilizzare la funzione AGO per calcolare i ricavi dell'anno precedente.

I membri delle dimensioni tempo devono trovarsi a livello della funzione o a un livello inferiore. Pertanto, è necessario progettare nella query una o più colonne che identifichino in modo univoco i membri al livello o al di sotto del livello definito.

Funzione Esempio Descrizione Sintassi

AGO

SELECT Year_ID, AGO(sales, year, 1)

Calcola il valore aggregato di una misura in un periodo di tempo precedente specificato. Ad esempio, per calcolare i ricavi mensili dell'anno precedente, utilizzare AGO(Revenue, Year, 1, SHIP_MONTH). Per calcolare i ricavi trimestrali nell'ultimo trimestre, utilizzare AGO(Revenue, Quarter, 1).

AGO(MEASURE, TIME_LEVEL, OFFSET)

Dove:

  • MEASURE rappresenta la misura per il calcolo, ad esempio Revenue.
  • TIME_LEVEL rappresenta l'intervallo di tempo, che deve essere Year, Quarter, Month, Week o Day.
  • OFFSET rappresenta il numero di intervalli di tempo per il calcolo a ritroso. Ad esempio, 1 per un anno.

PERIODROLLING

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

Calcola il totale di una misura nel periodo che inizia con le unità di tempo x e termina con le unità di tempo y a partire dall'ora corrente. Ad esempio, PERIODROLLING può calcolare le vendite per un periodo che inizia in un trimestre precedente al trimestre corrente e termina in un periodo successivo al trimestre corrente.

PERIODROLLING(measure, x [,y])

Dove:

  • MEASURE rappresenta il nome di una colonna di misura.
  • X è un numero intero che rappresenta l'offset rispetto all'ora corrente.
  • Y è un numero intero che rappresenta il numero di unità di tempo in base alle quali verrà calcolata la funzione.
  • HIERARCHY è un argomento facoltativo che rappresenta il nome di una gerarchia in una dimensione tempo, ad esempio YR, MON, DAY, che si desidera utilizzare per calcolare la finestra temporale.

TODATE

SELECT Year_ID, Month_ID, TODATE (sales, year)

Calcola il valore aggregato di una misura a partire dall'inizio di un periodo di tempo fino al periodo di tempo più recente, ad esempio i calcoli da inizio anno.

Ad esempio, per calcolare le vendite da inizio anno, utilizzare TODATE(sales, year).

TODATE(MEASURE, TIME_LEVEL)

Dove:

  • MEASURE rappresenta un'espressione che fa riferimento ad almeno una colonna di misura, ad esempio sales.
  • TIME_LEVEL rappresenta l'intervallo di tempo, che deve essere Year, Quarter, Month, Week o Day.