Función de ventana RATIO_TO_REPORT - Amazon Redshift

Función de ventana RATIO_TO_REPORT

Calcula la relación de un valor con la suma de los valores en una ventana o partición. La relación de un valor de informe se determina utilizando la fórmula:

value of ratio_expression argument for the current row / sum of ratio_expression argument for the window or partition

El siguiente conjunto de datos ilustra el uso de esta fórmula:

Row# Value Calculation RATIO_TO_REPORT 1 2500 (2500)/(13900) 0.1798 2 2600 (2600)/(13900) 0.1870 3 2800 (2800)/(13900) 0.2014 4 2900 (2900)/(13900) 0.2086 5 3100 (3100)/(13900) 0.2230

El rango de valor de retorno es 0 a 1, inclusive. Si ratio_expression es NULL, el valor de devolución es NULL. Si un valor en partition_expression es único, la función devolverá 1 para ese valor.

Sintaxis

RATIO_TO_REPORT ( ratio_expression ) OVER ( [ PARTITION BY partition_expression ] )

Argumentos

ratio_expression

Una expresión, como un nombre de columna, que proporciona el valor para el cual determinar la relación. La expresión debe tener un tipo de dato numérico o ser implícitamente convertible a un dato numérico.

No se puede usar ninguna otra función analítica en ratio_expression.

OVER

Una cláusula que especifica la partición de ventana. La cláusula OVER no puede contener una especificación de marco de ventana u ordenamiento.

PARTITION BY partition_expression

Opcional. Una expresión que establece el rango de registros para cada grupo en la cláusula OVER.

Tipo de retorno

FLOAT8

Ejemplos

En los siguientes ejemplos, se utiliza la tabla WINSALES. Para obtener información sobre cómo crear esta tabla WINSALES, consulte Tabla de muestra para ejemplos de funciones de ventana.

En el siguiente ejemplo, se calcula la relación entre el valor registrado de cada fila de la cantidad de un vendedor y el total de todas las cantidades del vendedor.

select sellerid, qty, ratio_to_report(qty) over() from winsales order by sellerid; sellerid qty ratio_to_report -------------------------------------- 1 30 0.13953488372093023 1 10 0.046511627906976744 1 10 0.046511627906976744 2 20 0.09302325581395349 2 20 0.09302325581395349 3 30 0.13953488372093023 3 20 0.09302325581395349 3 15 0.06976744186046512 3 10 0.046511627906976744 4 10 0.046511627906976744 4 40 0.18604651162790697

En el siguiente ejemplo, se calculan las relaciones de porcentaje de las cantidades de ventas para vendedor por partición.

select sellerid, qty, ratio_to_report(qty) over(partition by sellerid) from winsales; sellerid qty ratio_to_report ------------------------------------------- 2 20 0.5 2 20 0.5 4 40 0.8 4 10 0.2 1 10 0.2 1 30 0.6 1 10 0.2 3 10 0.13333333333333333 3 15 0.2 3 20 0.26666666666666666 3 30 0.4