Función de rango de servidor SQL

Función de rango de servidor SQL

Existe una necesidad fundamental de clasificar o clasificar varios registros cuando se trabaja con datos. Por ejemplo, podría clasificar equipos en función de sus puntajes, empleados en función de su salario y muchos más.

La mayoría de nosotros realizamos cálculos utilizando funciones que devuelven un solo valor. En esta guía, exploraremos cómo usar la función de rango de servidor SQL para devolver un valor agregado para un grupo de fila específico.

Función SQL Server Rank (): los conceptos básicos

La función rank () es parte de las funciones de la ventana del servidor SQL. Funciona asignando un rango a cada fila para una partición específica del conjunto resultante.

La función asigna el mismo valor de rango para las filas dentro de una partición similar. Asigna el primer rango, el valor de 1, y agrega un valor consecutivo a cada rango.

La sintaxis para la función de rango es como:

clasificar (
[Partición por expresión],
Orden por expresión [ASC | Desc]
);

Desglosemos la sintaxis anterior.

La partición por cláusula divide las filas en particiones específicas donde se aplica la función de rango. Por ejemplo, en una base de datos que contiene datos de empleados, puede dividir filas basadas en los departamentos en los que trabajan.

La siguiente cláusula, orden por, define el orden en que las filas están organizadas en las particiones especificadas.

Función de rango de servidor SQL (): uso práctico

Tomemos un ejemplo práctico para comprender cómo usar la función Rank () en SQL Server.

Comience por crear una tabla de muestra que contenga información de los empleados.

Crear desarrolladores de tabla (
Id int identidad (1,1), no una clave primaria nula,
Nombre Varchar (200) no nulo,
Departamento Varchar (50),
dinero salarial
);

A continuación, agregue algunos datos a la tabla:

Insertar en desarrolladores (nombre, departamento, salario)
Valores ('Rebecca', 'Game Developer', $ 120000),
('James', 'desarrollador móvil', $ 110000),
('Laura', 'DevOps Developer', $ 180000),
('Quill', 'desarrollador móvil', $ 109000),
('John', 'Desarrollador de pila completa', $ 182000),
('Matthew', 'Game Developer', $ 140000),
('Caitlyn', 'DevOps Developer', $ 123000),
('Michelle', 'Desarrollador de ciencias de datos', $ 204000),
('Antony', 'desarrollador front-end', $ 103100),
('Khadija', 'desarrollador de backend', $ 193000),
('Joseph', 'Game Developer', $ 11500);
Seleccionar * de los desarrolladores;

Debe tener una tabla con los registros como se muestra:

Ejemplo 1: ordenar por

Use la función de rango para asignar rangos a los datos. Una consulta de ejemplo es como se muestra:

Seleccionar *, Rank () Over (Orden por departamento) como Rank_Number de los desarrolladores;

La consulta anterior debe dar la salida como se muestra:

La salida anterior muestra que la función asignó las filas de departamentos similares un valor de rango similar. Observe la función omita algunos valores de rango dependiendo del número de valores que tengan el mismo rango.

Por ejemplo, desde el rango de 7, la función salta al rango 10, ya que el rango 8 y 9 se asignan a los dos valores consecutivos de rango 7.

Ejemplo 2: Partición por

Considere el ejemplo a continuación. Utiliza la función de rango para asignar un rango a los desarrolladores en el mismo departamento.

Seleccionar *, Rank () Over (Partition por Orden del departamento por salario Desc) como Rank_Number de los desarrolladores;

La consulta anterior comienza dividiendo las filas de acuerdo con sus departamentos. A continuación, la orden por cláusula clasifica los registros en cada partición por el salario en orden descendente.

La salida resultante es como se muestra:

Conclusión

En esta guía, cubrimos cómo trabajar con la función de rango en SQL Server, lo que le permite dividir y clasificar filas.

Gracias por leer!