Función APPROXIMATE PERCENTILE_DISC - AWS Clean Rooms

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Función APPROXIMATE PERCENTILE_DISC

APPROXIMATE PERCENTILE_DISC es una función de distribución inversa que asume un modelo de distribución discreta. Toma un valor percentil y una especificación de ordenación, y devuelve un elemento del conjunto dado. La aproximación permite que la función se ejecute mucho más rápido, con un margen de error relativamente bajo de alrededor del 0,5 %.

En un percentil dado, APPROXIMATE PERCENTILE_DISC utiliza un algoritmo de resumen de cuartiles para aproximar el percentil discreto de la expresión en la cláusula ORDER BY. APPROXIMATE PERCENTILE_DISC devuelve el menor valor de distribución acumulado (con respecto a la misma especificación de ordenación) que sea mayor o igual que el percentil.

APPROXIMATE PERCENTILE_DISC es una función específica del nodo de computación. La función devuelve un error si la consulta no hace referencia a una tabla definida por el usuario o a una tabla AWS Clean Rooms del sistema.

Sintaxis

APPROXIMATE PERCENTILE_DISC ( percentile ) WITHIN GROUP (ORDER BY expr)

Argumentos

percentil

Constante numérica entre 0 y 1. Los valores nulos se ignoran en el cálculo.

WITHIN GROUP ( ORDER BY expr)

Cláusula que especifica valores numéricos o de fecha/hora para ordenar y calcular el percentil.

Devuelve

El mismo tipo de datos que la expresión ORDER BY en la cláusula WITHIN GROUP.

Notas de uso

Si la instrucción APPROXIMATE PERCENTILE_DISC incluye una cláusula GROUP BY, el conjunto de resultados es limitado. El límite varía según el tipo de nodo y la cantidad de nodos. Si se supera el límite, la función falla y devuelve el siguiente mensaje de error.

GROUP BY limit for approximate percentile_disc exceeded.

Si necesita evaluar más grupos que los permitidos, considere usar Función PERCENTILE_CONT.

Ejemplos

El siguiente ejemplo devuelve la cantidad de ventas, las ventas totales y el valor del décimo quinto percentil para las 10 primeras fechas.

select top 10 date.caldate, count(totalprice), sum(totalprice), approximate percentile_disc(0.5) within group (order by totalprice) from listing join date on listing.dateid = date.dateid group by date.caldate order by 3 desc; caldate | count | sum | percentile_disc -----------+-------+------------+---------------- 2008-01-07 | 658 | 2081400.00 | 2020.00 2008-01-02 | 614 | 2064840.00 | 2178.00 2008-07-22 | 593 | 1994256.00 | 2214.00 2008-01-26 | 595 | 1993188.00 | 2272.00 2008-02-24 | 655 | 1975345.00 | 2070.00 2008-02-04 | 616 | 1972491.00 | 1995.00 2008-02-14 | 628 | 1971759.00 | 2184.00 2008-09-01 | 600 | 1944976.00 | 2100.00 2008-07-29 | 597 | 1944488.00 | 2106.00 2008-07-23 | 592 | 1943265.00 | 1974.00