INSTRUCCION RANK y DENSE_RANK (es-ES)

INSTRUCCION RANK y DENSE_RANK (es-ES)

Imagina que contamos con un grupo de alumnos de los cuales tenemos las notas obtenidas en las materias de Matemática, Humanidades, Derecho y queremos saber en base a su nota la posición obtenida del alumno en cada materia, para esto necesitaríamos clasificar las notas de mayor a menor.
Otro ejemplo podría ser si imaginamos una lista de productos agrupados por una categoría y queremos organizar los productos del más caro al más barato por cada categoría, la imagen de abajo muestra los datos sin ordenar.

 
 
Para esto en SQL Server de Microsoft usamos la instrucciónes RANK ó DENSE_RANK RANK La instrucción RANK permite clasificar los elementos de un grupo en posiciones (primero, segundo, tercero…..n), si hay elementos con el mismo valor los coloca dentro de la misma posición (como en empate) pero al inmediato inferior le da la posición en base al numero de elementos existentes,
Ejemplo:
Select Categoria, NombreProducto, Precio, RANK () over(partitionby categoria orderby precio desc) as Posicion from Producto

 

DENSE_RANK Igual que la instrucción RANK, permite clasificar los elementos de un grupo en posiciones (primero, segundo, tercero…..n), llenando totas las posiciones hasta quedarse sin elementos, si hay elementos con el mismo valor los coloca dentro de la misma posición (como en empate) y al inmediato inferior le da el correlativo siguiente a la clasificación de posición,

Ejemplo:
SELECT Categoria, NombreProducto, Precio, dense_rank()over(partitionby categoria orderby precio desc) as
Posicion
from Producto

 
Leave a Comment
  • Please add 4 and 8 and type the answer here:
  • Post
Wiki - Revision Comment List(Revision Comment)
Sort by: Published Date | Most Recent | Most Useful
Comments
  • LeoPonti edited Original. Comment: Excelente articulo!! sume el detalle de idioma es-ES en la lista de Tags

Page 1 of 1 (1 items)
Wikis - Comment List
Sort by: Published Date | Most Recent | Most Useful
Posting comments is temporarily disabled until 10:00am PST on Saturday, December 14th. Thank you for your patience.
Comments
  • LeoPonti edited Original. Comment: Excelente articulo!! sume el detalle de idioma es-ES en la lista de Tags

Page 1 of 1 (1 items)