pctrank
La función pctrank es una función de ventana que devuelve el ranking de cada fila normalizado entre 0 y 1.
Requiere la cláusula ORDER BY en la partición OVER.
Se puede usar tanto la sintaxis OVER del SQL estándar como la sintaxis compacta propia de Crono.
Ejemplo
Sección titulada «Ejemplo»La siguiente consulta devuelve el 40% de las tiendas con mayor venta.
select lb_tiendas.nombre tienda, sum(unidades) ventas, pctrank(order by ventas desc) rankfrom dbo.lb_ventasinner join lb_tiendas using id_tiendagroup by allqualify rank<0.4La consulta SQL generada es:
SELECT *FROM ( SELECT lb_tiendas.nombre AS tienda, sum(unidades) AS ventas, 1.0*rank() OVER (ORDER BY sum(unidades) DESC)/count(*) OVER () AS rank FROM dbo.lb_ventas INNER JOIN lb_tiendas ON (lb_ventas.id_tienda=lb_tiendas.id_tienda) GROUP BY lb_tiendas.nombre ) aWHERE rank<0.4Comentarios
Sección titulada «Comentarios»Esta función es similar a rank y percentile. La función rank devuelve la posición ordinal de cada registro, percentile la normaliza entre 0 y 100, y pctrankla normaliza entre 0 y 1.