Funciones

Hay varios tipos de funciones que puede utilizar en expresiones.

Temas:

Funciones analíticas

Las funciones de análisis permiten explorar los datos mediante modelos de, por ejemplo previsión, línea de tendencia y cluster. También puede arrastrar y soltar funciones de análisis en el editor de libros de trabajo.

También puede agregar previsiones, líneas de tendencia y clusters a un libro de trabajo seleccionándolos en el separador Análisis del panel de datos en el editor de libros de trabajo. Consulte Adición de análisis estadísticos a visualizaciones.

Función Ejemplo Descripción Sintaxis

CLUSTER

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

Recopila un juego de registros en grupos basándose en una o más expresiones de entrada mediante K-Means o la agrupación en clusters jerárquica.

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

FORECAST

Ejemplo de previsión de ingresos por día

En este ejemplo se selecciona la previsión de ingresos por día.

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

Ejemplo de previsión de ingresos por año y trimestre

En este ejemplo se selecciona la previsión de ingresos por año y 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 modelo de series temporal de la medida especificada sobre las series mediante el suavizado exponencial (ETS), estacional ARIMA o ARIMA. Esta función da como resultado una previsión para un juego de períodos según se ha especificado en el argumento numPeriods.

Consulte también las opciones adicionales de la función FORECAST a continuación.

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

Donde:

  • measure representa la medida de la que se realiza la previsión; por ejemplo, los datos de ingresos.

  • series representa el detalle de tiempo empleado para crear el modelo de previsión. La serie es una lista de una o más columnas de dimensión de tiempo. Si omite series, el detalle de tiempo viene determinado por la consulta.

  • output_column_name representa los nombres de columna válidos de forecast, low, high y predictionInterval.

  • options representa una lista de cadenasde pares de nombre y valor separados por punto y coma (;). El valor puede incluir %1 ... %N especificado en runtime_binded_options.

  • runtime_binded_options representa una lista separada por comas de columnas y opciones. Los valores de estas columnas y opciones se evalúan y se resuelven durante el tiempo de ejecución de consultas individuales.

Consulte también las opciones adicionales de la función FORECAST a continuación.

OUTLIER

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

Clasifica un registro como valor atípico en función de una o más expresiones de entrada mediante K-Means, agrupación en clusters jerárquica o algoritmos de detección de valores atípicos de varias variables.

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

REGR

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

Ajusta un modelo lineal y devuelve los valores o el modelo ajustados. Esta función puede utilizarse para ajustar una curva lineal en dos medidas.

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 recomienda que aplique una línea de tendencia utilizando la propiedad Agregar estadísticas al mostrar una visualización. Consulte Ajuste de propiedades de visualización.

Ajusta un modelo lineal, polinómico o exponencial y devuelve los valores o el modelo ajustados. numeric_expr representa el valor Y de la tendencia, y series (columnas de tiempo) representan el valor X.

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

Opciones de la función FORECAST En la siguiente tabla se muestran las opciones disponibles que se pueden usar con la función FORECAST.

Nombre de la opción Valores Descripción
numPeriods Entero Número de períodos del que realizar la previsión.
predictionInterval De 0 a 100, donde los valores superiores especifican una mayor confianza Nivel de confianza para la predicción.
modelType

ETS (alisado exponencial)

SeasonalArima

ARIMA

Modelo que utilizar para la previsión.
useBoxCox

TRUE

FALSE

Si es TRUE, utilice la transformación Box-Cox.
lambdaValue No aplicable

Parámetro de transformación Box-Cox.

Ignore si el valor es NULL o cuando el valor de useBoxCox sea FALSE.

De lo contrario, los datos se transforman antes de estimar el modelo.

trendDamp

TRUE

FALSE

Es específico del modelo de alisado exponencial.

Si el valor es TRUE, utilice la tendencia desechada. Si el valor es FALSE o NULL, utilice la tendencia no desechada.

errorType

No aplicable

Es específico del modelo de alisado exponencial.
trendType

N (ninguno)

A (aditivo)

M (multiplicativo)

Z (seleccionado automáticamente)

Es específico del modelo de alisado exponencial.
seasonType

N (ninguno)

A (aditivo)

M (multiplicativo)

Z (seleccionado automáticamente)

Es específico del modelo de alisado exponencial.
modelParamIC

ic_auto

ic_aicc

ic_bic

ic_auto (es el valor por defecto)

Criterios de información (IC) usados en la selección de modelo.

Funciones de conversión

Las funciones de conversión convierten un valor de un formato a otro.

Función Ejemplo Descripción Sintaxis

CAST

CAST(hiredate AS CHAR(40)) FROM employee

Cambia el tipo de dato de una expresión o un literal nulo a otro tipo de dato. Por ejemplo, se puede convertir customer_name (un tipo de datos CHAR o VARCHAR) o birthdate (un literal de fecha y hora).

Utilice CAST para cambiar a un tipo de dato Date.

No utilice TODATE.

CAST(expr AS type)

IFNULL

IFNULL(Sales, 0)

Prueba si una expresión se evalúa en un valor nulo y, en caso afirmativo, asigna el valor especificado a la expresión.

IFNULL(expr, value)

INDEXCOL

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

Utiliza información externa para devolver la columna adecuada para que la pueda ver el usuario conectado.

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

Compara dos expresiones. Si son iguales, la función devuelve NULL. Si no son iguales, la función devuelve la primera expresión. No puede especificar el literal NULL para la primera expresión.

NULLIF([expression], [expression])

To_DateTime

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

Convierte los literales de cadena de formato DateTime a un tipo de dato DateTime.

To_DateTime([expression], [literal])

VALUEOF

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

Hace referencia al valor de una variable de modelo semántico en un filtro.

Utilice variables expr como argumentos de la función VALUEOF. Utilice el nombre para hacer referencia a las variables de modelo semántico.

VALUEOF(expr)

Funciones de extracción de fechas

Estas funciones calculan o redondean los valores de registro de hora al siguiente período de tiempo especificado más cercano, como hora, día, semana, mes y trimestre.

Puede usar los registros de hora calculados para agregar los datos con un detalle distinto. Por ejemplo, podría aplicar la función EXTRACTDAY() a las fechas de órdenes de venta para calcular un registro de hora para la medianoche del día en que se realiza la orden, para que pueda agregar los datos por día.

Función Ejemplo Descripción Sintaxis

Extraer día

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

Devuelve un registro de hora para la medianoche (12 a.m.) del día en el que se produce el valor de entrada. Por ejemplo, si el registro de hora de entrada se corresponde con las 3:02:01 a.m. del 22 de febrero, la función devuelve el registro de hora de las 12:00:00 a.m. del 22 de febrero.

EXTRACTDAY(expr)

Extraer hora

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

Devuelve un registro de hora para el inicio de la hora en la que se produce el valor de entrada. Por ejemplo, si el registro de hora de entrada se corresponde con las 11:18:30 p.m., la función devuelve el registro de hora 11:00:00 p.m.

EXTRACTHOUR (expr)

Extraer hora del día

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

Devuelve un registro de hora donde la hora sea igual a la hora del valor de entrada con valores por defecto para el año, el mes, el día, los minutos y los segundos.

EXTRACTHOUROFDAY(expr)

Extraer milisegundo

EXTRACTMILLISECOND("Order Date")
  • 1997/01/07 15:32:02.150 devuelve 1997/01/07 15:32:02.150.
  • 1997/01/07 18:42:01.265 devuelve 1997/01/07 18:42:01.265.
Devuelve un registro de hora que contiene los milisegundos para el valor de entrada. Por ejemplo, si el registro de hora de entrada se corresponde con las 15:32:02.150, la función devuelve el registro de hora 15:32:02.150.

EXTRACTMILLISECOND(expr)

Extraer minuto

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

Devuelve un registro de hora para el inicio del minuto en el que se produce el valor de entrada. Por ejemplo, si el registro de hora de entrada se corresponde con las 11:38:21 a.m., la función devuelve el registro de hora 11:38:00 AM.

EXTRACTMINUTE (expr)

Extraer mes

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

Devuelve un registro de hora para el primer día del mes en el que se produce el valor de entrada. Por ejemplo, si el registro de hora de entrada se corresponde con el 22 de febrero, la función devuelve el registro de hora del 1 de febrero.

EXTRACTMONTH(expr)

Extraer trimestre

EXTRACTQUARTER("Order Date")
  • 2/22/1967 3:02:01 AM devuelve 1/1/1967 12:00:00 AM, el primer día del primer trimestre fiscal.
  • 6/17/1999 11:18:00 PM devuelve 4/1/1999 12:00:00 AM, el primer día del segundo trimestre fiscal.

  • 9/2/2022 10:38:21 AM devuelve 7/1/2022 12:00:00 AM, el primer día del tercer trimestre fiscal.

    Consejo: Use QUARTER (expr) para calcular solo el trimestre ordinal del registro de hora devuelto.

Devuelve un registro de hora para el primer día del trimestre en el que se produce el valor de entrada. Por ejemplo, si el registro de hora de entrada se encuentra en el tercer trimestre fiscal, la función devuelve el registro de hora del 1 de julio.

EXTRACTQUARTER(expr)

Extraer segundo

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

Devuelve un registro de hora para el valor de entrada. Por ejemplo, si el registro de hora de entrada se corresponde con las 15:32:02.150, la función devuelve el registro de hora 15:32:02.

EXTRACTSECOND(expr)

Extraer semana

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

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

Devuelve la fecha del primer día de la semana (domingo) en el que se produce el valor de entrada. Por ejemplo, si el registro de hora de entrada es el miércoles, 24 de septiembre, la función devuelve el registro de hora del domingo, 21 de septiembre.

EXTRACTWEEK(expr)

Extraer año

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

Devuelve un registro de hora para el 1 de enero del año en el que se produce el valor de entrada. Por ejemplo, si el registro de hora de entrada se encuentra en 1967, la función devuelve el registro de hora 1 de enero de 1967.

EXTRACTYEAR (expr)

Consejos sobre el uso de dimensiones de fecha en áreas temáticas

A continuación se incluyen algunos consejos para obtener los mejores resultados al utilizar fechas de área temática en cálculos.

Adición de una fecha de área temática a un cálculo

Si arrastra una fecha desde un área temática directamente a un cálculo y la procesa como una cadena o un entero, se mostrará un error. Esto ocurre porque el valor de fecha subyacente es un registro de hora.

Utilice en su lugar una de las Funciones de extracción de fechas para interpretar la fecha.

Por ejemplo, podría tener las siguientes fechas de área temática.
A continuación se muestra la descripción de GUID-39C55B3A-A055-45D3-9904-948680247C08-default.png
.png

Para extraer los meses de estas fechas de área temática, utilice la función ExtractMonthOfYear:

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

Funciones de visualización

Las funciones de visualización se utilizan en el juego de resultados de una consulta.

Función Ejemplo Descripción Sintaxis

BottomN

BottomN(Sales, 10)

Devuelve los n valores inferiores de la expresión, clasificados de menor a mayor.

BottomN([NumericExpression], [integer])

FILTER

FILTER(Sales USING Product = 'widget')

Calcula la expresión con el filtro de agregación previa especificado.

FILTER(measure USING filter_expr)

MAVG

MAVG(Sales, 10)

Calcula el promedio (media) móvil de las últimas n filas de datos en el juego de resultados, incluida la fila actual.

MAVG([NumericExpression], [integer])

MSUM

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

Calcula una suma móvil de las últimas n filas de datos, incluida la fila actual.

La suma de la primera fila es igual a la expresión numérica de la primera fila. La suma de la segunda fila se calcula tomando la suma de las dos primeras filas de datos, etc. Cuando se llega a la fila n , la suma se calcula en función de las últimas n filas de datos.

MSUM([NumericExpression], [integer])

NTILE

NTILE(Sales, 100)

Determina el rango de un valor según una amplitud de rango especificada por el usuario. Devuelve enteros para representar cualquier intervalo de rangos. El ejemplo muestra un rango desde 1 hasta 100, donde la menor venta = 1 y la mayor venta = 100.

NTILE([NumericExpresssion], [integer])

PERCENTILE

PERCENTILE(Sales)

Calcula el rango de porcentaje de cada valor que cumple el argumento de expresión numérica. Oscila entre 0 (primer percentil) y 1 (100º percentil), incluidos.

PERCENTILE([NumericExpression])

RANK

RANK(Sales)

Calcula el rango de cada valor que cumple el argumento de expresión numérica. Al número más alto, se le asigna el rango 1 y a cada rango sucesivo se le asigna el siguiente entero consecutivo (2, 3, 4...). Si determinados valores coinciden, se les asigna el mismo rango (por ejemplo, 1, 1, 1, 4, 5, 5, 7...).

RANK([NumericExpression])

RCOUNT

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

Toma un juego de registros como entrada y cuenta el número de registros encontrados hasta ese momento.

RCOUNT([NumericExpression])

RMAX

SELECT month, profit, RMAX(profit) FROM sales

Toma un juego de registros como entrada y muestra el valor máximo a partir de los registros encontrados hasta ese momento. El tipo de grupos especificado debe ser uno que se pueda ordenar.

RMAX([NumericExpression])

RMIN

SELECT month, profit, RMIN(profit) FROM sales

Toma un juego de registros como entrada y muestra el valor mínimo a partir de los registros encontrados hasta ese momento. El tipo de grupos especificado debe ser uno que se pueda ordenar.

RMIN([NumericExpression])

RSUM

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

Calcula una suma de valores a partir de los registros encontrados hasta ese momento.

La suma de la primera fila es igual a la expresión numérica de la primera fila. La suma de la segunda fila se calcula tomando la suma de las dos primeras filas de datos, etc.

RSUM([NumericExpression])

TOPN

TOPN(Sales, 10)

Devuelve los n valores superiores de la expresión, clasificados de mayor a menor.

TOPN([NumericExpression], [integer])

Consejos sobre el uso de funciones de visualización

  • FILTER: si desea crear un informe utilizando un área temática, use las jerarquías definidas en el área temática en lugar de filtrar las columnas de jerarquías directamente en un cálculo. Es decir, si un área temática tiene una jerarquía para Tiempo\Año fiscal\Trimestre fiscal, evite:

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

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

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

Funciones de evaluación

Las funciones de evaluación son funciones de base de datos que se pueden utilizar para transferir expresiones para obtener cálculos avanzados.

Las funciones de base de datos embebidas pueden necesitar una o más columnas. Se hace referencia a ellas mediante %1 ... %N en la función. Las columnas reales deben enumerarse después de la función.

Función Ejemplo Descripción Sintaxis

EVALUATE

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

Transfiere la función de la base de datos especificada con columnas opcionales a las que se hace referencia como parámetros a la base de datos para evaluación.

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

EVALUATE_AGGR

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

Transfiere la función de la base de datos especificada con columnas opcionales a las que se hace referencia como parámetros a la base de datos para evaluación. Esta función se utiliza para agregar funciones con una cláusula GROUP BY.

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

Funciones matemáticas

Las funciones matemáticas descritas en esta sección realizan operaciones matemáticas.

Función Ejemplo Descripción Sintaxis

ABS

ABS(Profit)

Calcula el valor absoluto de una expresión numérica.

expr es cualquier expresión que se evalúa como un valor numérico.

ABS(expr)

ACOS

ACOS(1)

Calcula el arcocoseno de una expresión numérica.

expr es cualquier expresión que se evalúa como un valor numérico.

ACOS(expr)

ASIN

ASIN(1)

Calcula el arcoseno de una expresión numérica.

expr es cualquier expresión que se evalúa como un valor numérico.

ASIN(expr)

ATAN

ATAN(1)

Calcula el arcotangente de una expresión numérica.

expr es cualquier expresión que se evalúa como un valor numérico.

ATAN(expr)

ATAN2

ATAN2(1, 2)

Calcula la arcotangente de y /x, donde y es la primera expresión numérica, y x la segunda.

ATAN2(expr1, expr2)

CEILING

CEILING(Profit)

Redondea una expresión numérica no entera al siguiente entero superior. Si la expresión numérica se evalúa como un entero, la función CEILING devuelve ese entero.

CEILING(expr)

COS

COS(1)

Calcula el coseno de una expresión numérica.

expr es cualquier expresión que se evalúa como un valor numérico.

COS(expr)

COT

COT(1)

Calcula la cotangente de una expresión numérica.

expr es cualquier expresión que se evalúa como un valor numérico.

COT(expr)

DEGREES

DEGREES(1)

Convierte una expresión de radianes a grados.

expr es cualquier expresión que se evalúa como un valor numérico.

DEGREES(expr)

EXP

EXP(4)

Eleva el valor a la potencia especificada. Calcula e elevado a la potencia n, donde e es la base del logaritmo natural.

EXP(expr)

ExtractBit

Int ExtractBit(1, 5)

Recupera un bit en una posición determinada en un entero. Devuelve un entero de 0 o 1 que corresponde a la posición del bit.

ExtractBit([Source Number], [Digits])

FLOOR

FLOOR(Profit)

Redondea una expresión numérica no entera al siguiente entero inferior. Si la expresión numérica se evalúa como un entero, la función FLOOR devuelve ese entero.

FLOOR(expr)

LOG

LOG(1)

Calcula el logaritmo neperiano de una expresión.

expr es cualquier expresión que se evalúa como un valor numérico.

LOG(expr)

LOG10

LOG10(1)

Calcula el logaritmo decimal de una expresión.

expr es cualquier expresión que se evalúa como un valor numérico.

LOG10(expr)

MOD

MOD(10, 3)

Divide la primera expresión numérica entre la segunda expresión numérica y devuelve la parte restante del cociente.

MOD(expr1, expr2)

PI

PI()

Devuelve el valor constante de pi.

PI()

POWER

POWER(Profit, 2)

Toma la primera expresión numérica y la eleva a la potencia especificada en la segunda expresión numérica.

POWER(expr1, expr2)

RADIANS

RADIANS(30)

Convierte una expresión de grados a radianes.

expr es cualquier expresión que se evalúa como un valor numérico.

RADIANS(expr)

RAND

RAND()

Devuelve un número pseudoaleatorio entre 0 y 1.

RAND()

RANDFromSeed

RAND(2)

Devuelve un número pseudoaleatorio basado en un valor original. Para un valor semilla concreto, se genera el mismo conjunto de números aleatorios.

RAND(expr)

ROUND

ROUND(2.166000, 2)

Redondea una expresión numérica a n dígitos de precisión.

expr es cualquier expresión que se evalúa como un valor numérico.

Un entero es cualquier entero positivo entero que representa el número de dígitos de precisión.

ROUND(expr, integer)

SIGN

SIGN(Profit)

Devuelve lo siguiente:

  • 1 si la expresión numérica se evalúa como un número positivo

  • -1 si la expresión numérica se evalúa como un número negativo

  • 0 si la expresión numérica se evalúa como cero

SIGN(expr)

SIN

SIN(1)

Calcula el seno de una expresión numérica.

SIN(expr)

SQRT

SQRT(7)

Calcula la raíz cuadrada del argumento de expresión numérica. La expresión numérica debe evaluar un número no negativo.

SQRT(expr)

TAN

TAN(1)

Calcula la tangente de una expresión numérica.

expr es cualquier expresión que se evalúa como un valor numérico.

TAN(expr)

TRUNCATE

TRUNCATE(45.12345, 2)

Trunca un número decimal para devolver el número especificado de decimales desde el separador de decimales.

expr es cualquier expresión que se evalúa como un valor numérico.

Un entero es cualquier entero positivo que representa el número de caracteres a la derecha del lugar decimal que se devuelve.

TRUNCATE(expr, integer)

Funciones de agregado de ejecución

Las funciones de agregado de ejecución realizan operaciones en varios valores para crear resultados de resumen.

Función Ejemplo Descripción Sintaxis

MAVG

 

Calcula el promedio (media) móvil de las últimas n filas de datos en el juego de resultados, incluida la fila actual.

expr es cualquier expresión que se evalúa como un valor numérico. integer es cualquier entero positivo. Representa el valor medio de las últimas n filas de datos.

MAVG(expr, integer)

MSUM

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

Calcula una suma móvil de las últimas n filas de datos, incluida la fila actual.

expr es cualquier expresión que se evalúa como un valor numérico. integer es cualquier entero positivo. Representa la suma de las últimas n filas de datos.

MSUM(expr, integer)

RSUM

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

Calcula una suma de valores a partir de los registros encontrados hasta ese momento.

expr es cualquier expresión que se evalúa como un valor numérico.

RSUM(expr)

RCOUNT

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

Toma un juego de registros como entrada y cuenta el número de registros encontrados hasta ese momento.

expr es una expresión de cualquier tipo de dato.

RCOUNT(expr)

RMAX

SELECT month, profit,RMAX(profit) from sales_subject_area

Toma un juego de registros como entrada y muestra el valor máximo a partir de los registros encontrados hasta ese momento.

expr es una expresión de cualquier tipo de dato.

RMAX(expr)

RMIN

select month, profit,RMIN(profit) from sales_subject_area

Toma un juego de registros como entrada y muestra el valor mínimo a partir de los registros encontrados hasta ese momento.

expr es una expresión de cualquier tipo de dato.

RMIN(expr)

Funciones espaciales

Las funciones espaciales le permiten realizar análisis geográficos al modelar los datos. Por ejemplo, podría calcular la distancia entre dos áreas geográficas (conocidas como formas o polígonos).

Nota:

No puede usar estas funciones espaciales en cálculos personalizados para libros de trabajo de visualización.
Función Ejemplo Descripción Sintaxis
GeometryArea

GeometryArea(Shape)

Calcula el área que ocupa una forma.

GeometryArea(Shape)

GeometryDistance

GeometryDistance(TRIP_START, TRIP_END)

Controla la distancia entre dos formas.

GeometryDistance(Shape 1, Shape 2)

GeometryLength

GeometryLength(Shape)

Calcula la circunferencia de una forma.

GeometryLength(Shape)

GeometryRelate

GeometryRelate(TRIP_START, TRIP_END)

Determina si una forma está incluida en otra forma. Devuelve TRUE o FALSE como cadena (varchar).

GeometryRelate(Shape 1, Shape 2)

GeometryWithinDistance

GeometryWithinDistance(TRIP_START, TRIP_END, 500)

Determina si dos formas están en la distancia especificada entre sí. Devuelve TRUE o FALSE como cadena (varchar).

GeometryWithinDistance(Shape1, Shape2, DistanceInFloat)

Funciones de cadena

Las funciones de cadena realizan diversas manipulaciones de caracteres. Actúan en las cadenas de caracteres.

Función Ejemplo Descripción Sintaxis

ASCII

ASCII('a')

Convierte una cadena de un solo carácter en el código ASCII correspondiente, entre 0 y 255. Si la expresión de caracteres evalúa varios caracteres, se devuelve el código ASCII correspondiente a la primera letra de la expresión.

expr es cualquier expresión que se evalúa como una cadena de caracteres.

ASCII(expr)

BIT_LENGTH

BIT_LENGTH('abcdef')

Devuelve la longitud, en bits, de una cadena especificada. Cada carácter Unicode contiene 2 bytes de longitud (igual a 16 bits).

expr es cualquier expresión que se evalúa como una cadena de caracteres.

BIT_LENGTH(expr)

CHAR

CHAR(35)

Convierte un valor numérico entre 0 y 255 en el valor del carácter correspondiente en código ASCII.

expr es cualquier expresión que se evalúa como un valor numérico entre 0 y 255.

CHAR(expr)

CHAR_LENGTH

CHAR_LENGTH(Customer_Name)

Devuelve la longitud, en número de caracteres, de una cadena especificada. Los espacios iniciales y finales no cuentan para la longitud de la cadena.

expr es cualquier expresión que se evalúa como una cadena de caracteres.

CHAR_LENGTH(expr)

CONCAT

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

Concatena dos cadenas de caracteres.

exprs son expresiones que se evalúan como cadenas de caracteres separadas por comas.

Debe utilizar datos no procesados, datos sin formato, con CONCAT.

CONCAT(expr1, expr2)

INSERT

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

Inserta una cadena de caracteres determinada en una ubicación especificada de otra cadena de caracteres.

expr1 es cualquier expresión que se evalúa como una cadena de caracteres. Identifica la cadena de caracteres de destino.

integer1 es cualquier entero positivo que representa el número de caracteres desde el principio de la cadena de destino en la que se insertará la segunda cadena.

integer2 es cualquier entero positivo que representa el número de caracteres de la cadena de destino que se sustituirá por la segunda cadena.

expr2 es cualquier expresión que se evalúa como una cadena de caracteres. Identifica la cadena de caracteres que se insertará en la cadena de destino.

INSERT(expr1, integer1, integer2, expr2)

LEFT

SELECT LEFT('123456', 3) FROM table

Devuelve un número de caracteres especificado a la izquierda de la cadena.

expr es cualquier expresión que se evalúa como una cadena de caracteres.

integer es cualquier entero positivo que representa el número de caracteres de la parte izquierda de la cadena que se va a devolver

LEFT(expr, integer)

LENGTH

LENGTH(Customer_Name)

Devuelve la longitud, en número de caracteres, de una cadena especificada. Se devuelve el tamaño excluyendo los caracteres finales en blanco.

expr es cualquier expresión que se evalúa como una cadena de caracteres.

LENGTH(expr)

LOCATE

LOCATE('d' 'abcdef')

Devuelve la posición numérica de una cadena de caracteres en otra cadena de caracteres. Si la cadena de caracteres no se encuentra en la cadena en que se está buscando, la función devuelve un valor de 0.

expr1 es cualquier expresión que se evalúa como una cadena de caracteres. Identifica la cadena que se va a buscar.

expr2 es cualquier expresión que se evalúa como una cadena de caracteres.

Identifica la cadena que se va a buscar.

LOCATE(expr1, expr2)

LOCATEN

LOCATEN('d' 'abcdef', 3)

Al igual que LOCATE, devuelve la posición numérica de una cadena de caracteres en otra cadena de caracteres. LOCATEN incluye un argumento de entero que permite especificar una posición inicial para empezar la búsqueda.

expr1 es cualquier expresión que se evalúa como una cadena de caracteres. Identifica la cadena que se va a buscar.

expr2 es cualquier expresión que se evalúa como una cadena de caracteres. Identifica la cadena que se va a buscar.

integer es cualquier entero positivo (que no sea cero) que representa la posición inicial para empezar a buscar la cadena de caracteres.

LOCATEN(expr1, expr2, integer)

LOWER

LOWER(Customer_Name)

Pasa a minúsculas una cadena de caracteres.

expr es cualquier expresión que se evalúa como una cadena de caracteres.

LOWER(expr)

OCTET_LENGTH

OCTET_LENGTH('abcdef')

Devuelve el número de bytes de una cadena especificada.

expr es cualquier expresión que se evalúa como una cadena de caracteres.

OCTET_LENGTH(expr)

POSITION

POSITION('d', 'abcdef')

Devuelve la posición numérica de strExpr1 en una expresión de caracteres. Si no se encuentra strExpr1, la función devuelve 0.

expr1 es cualquier expresión que se evalúa como una cadena de caracteres. Identifica la cadena que se buscará en la cadena de destino. Por ejemplo, "d".

expr2 es cualquier expresión que se evalúa como una cadena de caracteres. Identifica la cadena de destino que se va a buscar. Por ejemplo, "abcdef".

POSITION(expr1, expr2)

REPEAT

REPEAT('abc', 4)

Repite una expresión especificada n veces.

expr es cualquier expresión que se evalúa como una cadena de caracteres.

integer es cualquier entero positivo que representa el número de veces que se repetirá la cadena de caracteres.

REPEAT(expr, integer)

REPLACE

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

Reemplaza uno o más caracteres de una expresión de caracteres especificada por uno o más caracteres.

expr1 es cualquier expresión que se evalúa como una cadena de caracteres. Esta es la cadena en la que se sustituirán los caracteres.

expr2 es cualquier expresión que se evalúa como una cadena de caracteres. Esta segunda cadena identifica los caracteres de la primera cadena que se sustituirán.

expr3 es cualquier expresión que se evalúa como una cadena de caracteres. Esta tercera cadena especifica los caracteres que se sustituirán en la primera cadena.

REPLACE(expr1, expr2, expr3)

RIGHT

SELECT RIGHT('123456', 3) FROM table

Devuelve un número especificado de caracteres a la derecha de la cadena.

expr es cualquier expresión que se evalúa como una cadena de caracteres.

integer es cualquier entero positivo que representa el número de caracteres de la parte derecha de la cadena que se va a devolver.

RIGHT(expr, integer)

SPACE

SPACE(2)

Inserta espacios en blanco.

integer es cualquier entero positivo que indica el número de espacios que se van a insertar.

SPACE(expr)

SUBSTRING

SUBSTRING('abcdef' FROM 2)

Crea una nueva cadena que empieza en un número fijo de caracteres en la cadena original.

expr es cualquier expresión que se evalúa como una cadena de caracteres.

startPos es cualquier entero positivo que representa el número de caracteres desde el inicio de la parte izquierda de la cadena por donde debe empezar el resultado.

SUBSTRING([SourceString] FROM [StartPostition])

SUBSTRINGN

SUBSTRING('abcdef' FROM 2 FOR 3)

Al igual que SUBSTRING, crea una nueva cadena que empieza en un número fijo de caracteres en la cadena original.

SUBSTRINGN incluye un argumento de entero que permite especificar la longitud de la nueva cadena en número de caracteres.

expr es cualquier expresión que se evalúa como una cadena de caracteres.

startPos es cualquier entero positivo que representa el número de caracteres desde el inicio de la parte izquierda de la cadena por donde debe empezar el resultado.

SUBSTRING(expr FROM startPos FOR length)

TrimBoth

Trim(BOTH '_' FROM '_abcdef_')

Elimina los caracteres iniciales y finales especificados de una cadena de caracteres.

char es un carácter cualquiera. Si omite esta especificación (y las comillas simples necesarias), se utiliza un carácter en blanco como valor por defecto.

expr es cualquier expresión que se evalúa como una cadena de caracteres.

TRIM(BOTH char FROM expr)

TRIMLEADING

TRIM(LEADING '_' FROM '_abcdef')

Elimina los caracteres iniciales especificados de una cadena de caracteres.

char es un carácter cualquiera. Si omite esta especificación (y las comillas simples necesarias), se utiliza un carácter en blanco como valor por defecto.

expr es cualquier expresión que se evalúa como una cadena de caracteres.

TRIM(LEADING char FROM expr)

TRIMTRAILING

TRIM(TRAILING '_' FROM 'abcdef_')

Elimina los caracteres finales especificados de una cadena de caracteres.

char es un carácter cualquiera. Si omite esta especificación (y las comillas simples necesarias), se utiliza un carácter en blanco como valor por defecto.

expr es cualquier expresión que se evalúa como una cadena de caracteres.

TRIM(TRAILING char FROM expr)

UPPER

UPPER(Customer_Name)

Pasa a mayúsculas una cadena de caracteres.

expr es cualquier expresión que se evalúa como una cadena de caracteres.

UPPER(expr)

Consejos sobre el uso de funciones de cadena

A continuación se incluyen algunos consejos sobre cómo obtener los mejores resultados al utilizar funciones de cadena en libros de trabajo.

Concatene varios valores:

Utilice LISTAGG para concatenar varios valores en una celda y una fila.

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

Agregue on overflow truncate si la cadena resultante es demasiado larga, y agregue distinct si los valores no son únicos.

Por ejemplo:

listagg(distinct City_ID by STATE on overflow truncate)

Funciones del sistema

La función del sistema USER devuelve valores relacionados con la sesión. Por ejemplo, el nombre de usuario con el que se ha conectado.

Función Ejemplo Descripción Sintaxis

DATABASE

 

Devuelve el nombre del área temática a la que se ha conectado.

DATABASE()

USER

 

Devuelve el nombre de usuario para el modelo semántico al que está conectado.

USER()

Funciones de serie temporal

Las funciones de serie de tiempo le permiten agregar y realizar previsiones de datos basándose en tres dimensiones. Por ejemplo, puede utilizar la función AGO para calcular los ingresos de hace un año.

Los miembros de la dimensión de tiempo deben estar en el nivel de la función o por debajo de éste. Por este motivo, deben proyectarse una o varias columnas que permiten identificar de forma exclusiva miembros en un nivel determinado o por debajo de éste en la consulta.

Función Ejemplo Descripción Sintaxis

AGO

SELECT Year_ID, AGO(sales, year, 1)

Calcula el valor agregado de una medida en un período de tiempo especificado en el pasado. Por ejemplo, para calcular los ingresos mensuales de hace un año, utilice AGO(Revenue, Year, 1, SHIP_MONTH). Para calcular los ingresos trimestrales del pasado trimestre, utilice AGO(Revenue, Quarter, 1).

AGO(MEASURE, TIME_LEVEL, OFFSET)

Donde:

  • MEASURE representa la medida que se va a calcular; por ejemplo, los ingresos.
  • TIME_LEVEL representa el intervalo de tiempo, que debe ser Year (año), Quarter (trimestre), Month (mes), Week (semana) o Day (día).
  • OFFSET representa el número de intervalos de tiempo a los que retroceder para realizar el cálculo; por ejemplo, 1 para un año.

PERIODROLLING

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

Calcula el agregado de una medida a lo largo del período que comienza por x unidades de tiempo y finaliza por y unidades de tiempo a partir de la hora actual. Por ejemplo, PERIODROLLING puede calcular las ventas de un período que empieza en un trimestre anterior al actual y termina en un trimestre posterior al actual.

PERIODROLLING(measure, x [,y])

Donde:

  • MEASURE representa el nombre de una columna de medida.
  • X es un entero que representa el desplazamiento con respecto al momento actual.
  • Y es un entero que representa el número de unidades de tiempo sobre las que se calcula la función.
  • HIERARCHY es un argumento opcional que representa el nombre de una jerarquía en una dimensión de tiempo, como YR, MON, DAY, que le permite calcular la ventana de tiempo.

TODATE

SELECT Year_ID, Month_ID, TODATE (sales, year)

Calcula el valor agregado de una medida desde el inicio de un período de tiempo hasta el período de tiempo más reciente; por ejemplo, cálculos de acumulado anual.

Por ejemplo, para calcular las ventas de acumulado anual, utilice TODATE(sales, year).

TODATE(MEASURE, TIME_LEVEL)

Donde:

  • MEASURE representa una expresión que hace referencia a una columna de medida como mínimo; por ejemplo, ventas.
  • TIME_LEVEL representa el intervalo de tiempo, que debe ser Year (año), Quarter (trimestre), Month (mes), Week (semana) o Day (día).