F Referencia del editor de expresiones

En esta sección se describen los elementos de expresión que puede utilizar en el editor de expresiones.

Temas:

Operadores SQL

Utilice los operadores SQL para especificar operaciones de comparación y aritméticas entre expresiones.

Puede utilizar varios tipos de operadores SQL.

Operador Ejemplo Descripción Sintaxis

BETWEEN

"COSTS"."UNIT_COST" BETWEEN 100.0 AND 5000.0

Determina si un valor está entre dos límites no inclusivos.

BETWEEN puede precedido por NOT para negar la condición.

BETWEEN [LowerBound] AND [UpperBound]

IN

"COSTS"."UNIT_COST" IN(200, 600, 'A')

Determina si un valor está presente en un juego de valores.

IN ([Comma Separated List])

IS NULL

"PRODUCTS"."PROD_NAME" IS NULL

Determina si un valor es nulo.

IS NULL

LIKE

"PRODUCTS"."PROD_NAME" LIKE 'prod%'

Determina si un valor coincide con toda una cadena o con parte de ésta. Se suele utilizar con caracteres comodín para indicar cualquier coincidencia de cadenas de caracteres de cero o varios caracteres (%) o cualquier coincidencia de carácter único (_).

LIKE

+

(FEDERAL_REVENUE + LOCAL_REVENUE) - TOTAL_EXPENDITURE

Signo más para sumar.

+

-

(FEDERAL_REVENUE + LOCAL_REVENUE) - TOTAL_EXPENDITURE

Signo menos para restar.

-

* o X

SUPPORT_SERVICES_EXPENDITURE * 1.5

Signo de multiplicación para multiplicar.

*

X

/

CAPITAL_OUTLAY_EXPENDITURE/1.05

Signo de división para dividir.

/

%

 

Porcentaje

%

||

STATE||CAST(YEAR AS CHAR(4))

Concatenación de cadenas de caracteres.

||

(

(FEDERAL_REVENUE + LOCAL_REVENUE) - TOTAL_EXPENDITURE

Paréntesis de apertura.

(

)

(FEDERAL_REVENUE + LOCAL_REVENUE) - TOTAL_EXPENDITURE

Paréntesis de cierre.

)

>

YEAR > 2000 and YEAR < 2016 and YEAR <> 2013

Signo mayor que: indica los valores mayores que la comparación.

>

<

YEAR > 2000 and YEAR < 2016 and YEAR <> 2013

Signo menor que: indica los valores inferiores a la comparación.

<

=

 

Signo igual: indica el mismo valor.

=

>=

 

Signo mayor que o igual: indica los valores que son iguales o mayores que la comparación.

>=

<=

 

Signo menor que o igual: indica los valores que son iguales o inferiores a la comparación.

<=

<>

YEAR > 2000 and YEAR < 2016 and YEAR <> 2013

Distinto de, indica los valores que son superiores o inferiores, pero diferentes.

<>

,

STATE in ('ALABAMA','CALIFORNIA')

Coma: signo que se utiliza para separar elementos en una lista.

,

Funciones

Hay varios tipos de funciones que puede utilizar en expresiones.

Temas:

Funciones de agregación

Las funciones agregadas realizan operaciones en varios valores para crear resultados de resumen.

En la lista siguiente se describen las reglas de agregación que están disponibles para las columnas y las columnas de medida. La lista también incluye funciones que puede utilizar al crear un elemento calculado para realizar análisis.

  • Predeterminado: aplica la regla de agregación predeterminada como en el modelo semántico o por el autor original del análisis. No disponible para elementos calculados en los análisis.

  • Determinado por el servidor: aplica la regla de agregación determinada por Oracle Analytics (como, por ejemplo, la regla que se define en el modelo semántico). La agregación se realiza en Oracle Analytics para reglas simples como suma, mínimo y máximo. No está disponible para columnas de medida del panel Diseño ni para elementos calculados en análisis.

  • Suma: calcula la suma obtenida al agregar todos los valores en el juego de resultados. Utilícela para elementos que tengan valores numéricos.

  • Mínimo: calcula el valor mínimo (valor numérico inferior) de las filas en el juego de resultados. Utilícela para elementos que tengan valores numéricos.

  • Máximo: calcula el valor máximo (valor numérico superior) de las filas en el juego de resultados. Utilícela para elementos que tengan valores numéricos.

  • Media: calcula la media de un elemento en el juego de resultados. Utilícela para elementos que tengan valores numéricos. Las medias de tablas y tablas dinámicas se redondean al número entero más próximo.

  • Primero: en el juego de resultados, selecciona la primera incidencia del elemento para medidas. Para los elementos calculados, selecciona el primer miembro según la pantalla de la lista Seleccionados. No está disponible en el cuadro de diálogo Editar fórmula de columna.

  • Último: en el juego de resultados, seleccione la última incidencia del elemento. Para los elementos calculados, selecciona el último miembro según la pantalla en la lista Seleccionados. No está disponible en el cuadro de diálogo Editar fórmula de columna.

  • Recuento: calcula el número de filas en el juego de resultados que tienen un valor no nulo para el elemento. El elemento es normalmente un nombre de columna, en cuyo caso se devuelve el número de filas con valores no nulos para dicha columna.

  • Recuento de los Valores Distintos: agrega procesamientos distintos a la función Recuento, lo que significa que cada incidencia distinta del elemento se cuenta sólo una vez.

  • Ninguno: no aplica agregación. No disponible para elementos calculados en los análisis.

  • Total basado en informe (si procede): si no se selecciona, especifica que Oracle Analytics debe calcular el total en base a todo el juego de resultados antes de aplicar ningún filtro a las medidas. No está disponible en el cuadro de diálogo Editar fórmula de columna ni para elementos calculados en los análisis. Sólo disponible para columnas de atributo.

Función Ejemplo Descripción Sintaxis

AGGREGATE AT

AGGREGATE(sales AT year)

Agrega columnas según el nivel o los niveles de la jerarquía de modelo de datos que especifique.

  • measure es el nombre de una columna de medidas.
  • level es el nivel al que desea agregar.

También puede especificar más de un nivel. No se puede especificar un nivel a partir de una dimensión que contenga los niveles que se están utilizando como nivel de medida para la medida especificada en el primer argumento. Por ejemplo, no puede escribir la función como AGGREGATE(yearly_sales AT month) si month procede de la misma dimensión de tiempo utilizada como nivel de medida para yearly_sales.

AGGREGATE(measure AT level [, level1, levelN])

AGGREGATE BY AGGREGATE(sales BY month, region) Agrega una medida según una o más columnas de dimensión.
  • measure es el nombre de una columna de medida que agregar.

  • column es la columna de dimensión en la que desea agregar.
Puede agregar medidas basadas en más de una columna.
AGGREGATE(measure BY column [, column1, columnN])

AVG

Avg(Sales)

Calcula la media (promedio) de un juego numérico de valores.

AVG(expr)

AVGDISTINCT

 

Calcula la media de todos los valores distintos de una expresión.

AVG(DISTINCT expr)

BIN

BIN(revenue BY productid, year WHERE productid > 2 INTO 4 BINS RETURNING RANGE_LOW)

Clasifica una determinada expresión numérica en un número especificado de cubos del mismo ancho. La función puede devolver el número de bin o uno de los dos puntos finales del intervalo de bins. numeric_expr es la medida o el atributo numérico en el bin. BY grain_expr1,…, grain_exprN es una lista de expresiones que define el detalle con el que se calcula el valor de numeric_expr. BY es necesario para las expresiones de medida, y es opcional para las expresiones de atributo. WHERE es un filtro que se aplica a numeric_expr antes de que se asignen los valores numéricos a los bins INTO number_of_bins BINS es el número de bins que devolver. BETWEEN min_value AND max_value son los valores mínimo y máximo que se utilizan como puntos finales de los bins más externos. RETURNING NUMBER indica que el valor de retorno debe ser el número de bins (1, 2, 3, 4, etc.). Éste es el estado por defecto. RETURNING RANGE_LOW indica el valor más bajo del intervalo de bins. RETURNING RANGE_HIGH indica el valor más alto del intervalo de bins

BIN(numeric_expr [BY grain_expr1, ..., grain_exprN] [WHERE condition] INTO number_of_bins BINS [BETWEEN min_value AND max_value] [RETURNING {NUMBER | RANGE_LOW | RANGE_HIGH}])

BottomN

 

Clasifica los n valores más bajos del argumento de la expresión de 1 a n, donde 1 corresponde al valor numérico más bajo.

expr es una expresión que se evalúa como un valor numérico. integer es cualquier entero positivo. Representa el número más bajo de las clasificaciones que aparecen en el conjunto de resultados (1 es la clasificación más baja).

BottomN(expr, integer)

COUNT

COUNT(Products)

Determina el número de elementos con un valor no nulo.

COUNT(expr)

COUNTDISTINCT

 

Agrega un procesamiento distinto a la función COUNT.

expr es cualquier expresión.

COUNT(DISTINCT expr)

COUNT*

SELECT COUNT(*) FROM Facts

Cuenta el número de filas.

COUNT(*)

Primero

First(Sales)

Selecciona el primer valor devuelto no nulo del argumento de la expresión. La función First funciona en el nivel más detallado especificado en la dimensión que haya definido de forma explícita.

First([NumericExpression)]

Último

Last(Sales)

Selecciona el último valor devuelto no nulo de la expresión.

Last([NumericExpression)]

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

MAX

MAX(Revenue)

Calcula el valor máximo (valor numérico más elevado) de las filas que cumplen el argumento de expresión numérica.

MAX(expr)

MEDIAN

MEDIAN(Sales)

Calcula el valor medio de las filas que cumplen el argumento de expresión numérica. Cuando hay un número par de filas, la mediana es la media de las dos filas centrales. Esta función siempre devuelve un doble.

MEDIAN(expr)

MIN

MIN(Revenue)

Calcula el valor mínimo (valor numérico mínimo) de las filas que cumplen el argumento de la expresión numérica.

MIN(expr)

NTILE

 

Determina el rango de un valor según una amplitud de rango especificada por el usuario. Devuelve enteros para representar cualquier intervalo de rangos. NTILE con numTiles=100 devuelve lo que se denomina normalmente "percentil" (con números que oscilan entre 1 y 100, siendo 100 el valor más elevado de la clasificación).

expr es cualquier expresión que se evalúa como un valor numérico. numTiles es un entero positivo, no nulo, que representa el número de mosaicos.

NTILE(expr, numTiles)

PERCENTILE

 

Calcula una clasificación de percentiles para cada valor que cumple el argumento de la expresión numérica. Los rangos de clasificación de percentiles están entre 0 (0º percentil) y 1 (100º percentil).

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

PERCENTILE(expr)

RANK

RANK(chronological_key, null, year_key_columns)

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

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

RANK(expr)

STDDEV

STDDEV(Sales) STDDEV(DISTINCT Sales)

Devuelve la desviación estándar de un conjunto de valores. El tipo de retorno siempre es un doble.

STDDEV(expr)

STDDEV_POP

STDDEV_POP(Sales) STDDEV_POP(DISTINCT Sales)

Devuelve la desviación estándar de un juego de valores mediante la fórmula numérica de la desviación estándar y la varianza de relleno.

STDDEV_POP([NumericExpression])

SUM

SUM(Revenue)

Calcula la suma que se obtiene al agregar todos los valores que cumplen el argumento de expresión numérica.

SUM(expr)

SUMDISTINCT

 

Calcula la suma obtenida al sumar todos los valores distintos que cumplen el argumento de la expresión numérica.

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

SUM(DISTINCT expr)

TOPN

 

Clasifica los n valores más altos del argumento de expresión de 1 a n, de forma que 1 corresponde al valor numérico más alto.

expr es una expresión que se evalúa como un valor numérico. integer es cualquier entero positivo. Representa el número más alto de clasificaciones que se muestran en el juego de resultados, donde 1 es el rango más alto.

TOPN(expr, integer)

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 funciones de análisis estadístico a las 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])

EVALUATE_SCRIPT

EVALUATE_SCRIPT('filerepo://obiee.Outliers.xml', 'isOutlier', 'algorithm=kmeans;id=%1;arg1=%2;arg2=%3;useRandomSeed=False;', customer_number, expected_revenue, customer_age)

Ejecuta el script de Python especificado en script_file_path transfiriendo una o más columnas o expresiones literales como entrada. La salida de la función viene determinada por output_column_name.

EVALUATE_SCRIPT(script_file_path, 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).

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 fecha y hora

Las funciones de fecha y hora manipulan los datos según DATE y DATETIME.

Función Ejemplo Descripción Sintaxis

CURRENT_Date

CURRENT_DATE

Devuelve la fecha actual.

La fecha se determina en el sistema donde se ejecuta Oracle BI.

CURRENT_DATE

CURRENT_TIME

CURRENT_TIME(3)

Devuelve la hora actual al número especificado de dígitos de precisión, por ejemplo: HH:MM:SS.SSS

Si no se especifica ningún argumento, la función devuelve la precisión por defecto.

CURRENT_TIME(expr)

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP(3)

Devuelve la fecha/registro de hora actual al número especificado de dígitos de precisión.

CURRENT_TIMESTAMP(expr)

DAYNAME

DAYNAME(Order_Date)

Devuelve el nombre del día de la semana de una expresión de fecha especificada.

DAYNAME(expr)

DAYOFMONTH

DAYOFMONTH(Order_Date)

Devuelve el número correspondiente al día del mes de una expresión de fecha especificada.

DAYOFMONTH(expr)

DAYOFWEEK

DAYOFWEEK(Order_Date)

Devuelve un número entre 1 y 7 correspondiente al día de la semana de una expresión de fecha especificada. Por ejemplo, 1 siempre corresponde al domingo, 2 al lunes, y así sucesivamente hasta el sábado, que corresponde al número 7.

DAYOFWEEK(expr)

DAYOFYEAR

DAYOFYEAR(Order_Date)

Devuelve el número (entre 1 y 366) correspondiente al día del año de una expresión de fecha especificada.

DAYOFYEAR(expr)

DAY_OF_QUARTER

DAY_OF_QUARTER(Order_Date)

Devuelve un número (entre 1 y 92) que corresponde al día del trimestre de la expresión de fecha especificada.

DAY_OF_QUARTER(expr)

HOUR

HOUR(Order_Time)

Devuelve un número (entre 0 y 23) correspondiente a la hora de una expresión de hora especificada. Por ejemplo, 0 corresponde a las 00:00 y 23 corresponde a las 23.00.

HOUR(expr)

MINUTE

MINUTE(Order_Time)

Devuelve un número (entre 0 y 59) correspondiente al minuto de una expresión de tiempo especificada.

MINUTE(expr)

MONTH

MONTH(Order_Time)

Devuelve el número (entre 1 y 12) correspondiente al mes de una expresión de fecha especificada.

MONTH(expr)

MONTHNAME

MONTHNAME(Order_Time)

Devuelve el nombre del mes de una expresión de fecha especificada.

MONTHNAME(expr)

MONTH_OF_QUARTER

MONTH_OF_QUARTER(Order_Date)

Devuelve el número (entre 1 y 3) correspondiente al mes del trimestre de una expresión de fecha especificada.

MONTH_OF_QUARTER(expr)

NOW

NOW()

Devuelve la fecha/hora actual. La función NOW es equivalente a la función CURRENT_TIMESTAMP.

NOW()

QUARTER_OF_YEAR

QUARTER_OF_YEAR(Order_Date)

Devuelve el número (entre 1 y 4) correspondiente al trimestre del año de una expresión de fecha especificada.

QUARTER_OF_YEAR(expr)

SECOND

SECOND(Order_Time)

Devuelve el número (entre 0 y 59) correspondiente a los segundos de una expresión de tiempo especificada.

SECOND(expr)

TIMESTAMPADD

TIMESTAMPADD(SQL_TSI_MONTH, 12,Time."Order Date")

Agrega el número especificado de intervalos a un registro de hora y devuelve un solo registro de hora.

Las opciones de intervalo son: SQL_TSI_SECOND, SQL_TSI_MINUTE, SQL_TSI_HOUR, SQL_TSI_DAY, SQL_TSI_WEEK, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_YEAR

TIMESTAMPADD(interval, expr, timestamp)

TIMESTAMPDIFF

TIMESTAMPDIFF(SQL_TSI_MONTH, Time."Order Date",CURRENT_DATE)

Devuelve el número total de intervalos especificados entre dos indicaciones de fecha/hora.

Utilice los mismos intervalos que TIMESTAMPADD.

TIMESTAMPDIFF(interval, expr, timestamp2)

WEEK_OF_QUARTER

WEEK_OF_QUARTER(Order_Date)

Devuelve un número (entre 1 y 13) que corresponde a la semana del trimestre de la expresión de fecha especificada.

WEEK_OF_QUARTER(expr)

WEEK_OF_YEAR

WEEK_OF_YEAR(Order_Date)

Devuelve un número (entre 1 y 53) que corresponde a la semana del año de la expresión de fecha especificada.

WEEK_OF_YEAR(expr)

YEAR

YEAR(Order_Date)

Devuelve el año de la expresión de fecha especificada.

YEAR(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)

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

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

Constantes

Puede utilizar contantes para incluir fechas y horas fijas específicas en libros de trabajo e informes.

Constante Ejemplo Descripción Sintaxis

DATE

DATE '2026-04-09'

Crea una fecha específica en un cálculo o una expresión.

DATE 'yyyy-mm-dd'

TIME

TIME '12:00:00'

Crea una hora específica en un cálculo o una expresión.

TIME 'hh:mi:ss'

TIMESTAMP

TIMESTAMP '2026-04-09 12:00:00'

Crea un registro de hora específico en un cálculo o una expresión.

TIMESTAMP 'yyyy-mm-dd hh:mi:ss'

Tipos

Puede utilizar tipos de dato, como CHAR, INT y NUMERIC en las expresiones.

Por ejemplo, puede utilizar tipos al crear expresiones CAST que cambien el tipo de dato de una expresión o un literal nulo a otro tipo de dato.