En este artículo, discutiremos la descripción general de la función SQL RANK y luego nuestro enfoque principal será Agregar posiciones de clasificación de filas en una base de datos con RANK() en SQL. Discutámoslo uno por uno.
Descripción general:
generalmente, cuando se ejecutan los comandos max/min, se muestra una sola fila como salida. RANK() es una función SQL introducida para clasificar las filas según algún atributo de la tabla. Según el registro del valor existente, la función RANK ayudará a clasificar la columna en consecuencia.
Sintaxis:
RANK() OVER(ORDER BY Any Column)
Pasos para implementar la función RANK:
Aquí, discutiremos los pasos para implementar la función RANK en SQL.
Paso 1: Tabla de referencia:
considere que se crea una tabla basada en las calificaciones de los estudiantes en la clase que contiene los datos que se muestran a continuación.
IDENTIFICACIÓN | NOMBRE |
MATEMÁTICAS |
FÍSICA | QUÍMICA |
---|---|---|---|---|
501 | Surya |
99 |
97 |
85 |
502 | Sravan |
91 |
98 |
94 |
503 | Charan |
99 |
93 |
88 |
504 | RAM |
92 |
99 |
92 |
505 | ario |
94 |
99 |
88 |
506 | sátvico |
91 |
88 |
91 |
507 | Madhav |
90 |
97 |
89 |
Paso 2: Creación de una tabla:
ahora, la instrucción SQL utilizada para crear la tabla se proporciona de la siguiente manera.
CREATE TABLE MarkList ( id int, name varchar(20), mathematics int, physics int, chemistry int );
Paso 3: Insertar datos:
Aquí, insertaremos las filas en la tabla de la siguiente manera.
insert into MarkList values( 501,'Surya',99,97,85); insert into MarkList values(502,'Charan',99,93,88); insert into MarkList values(503,'Sravan',91,98,94); insert into MarkList values(504,'Ram',92,99,82); insert into MarkList values(505,'Aryan',94,99,88); insert into MarkList values(506,'Sathwik',91,88,91); insert into MarkList values(507,'Madhav',90,97,89);
Paso 4: Verificación y clasificación de datos:
ahora, si queremos clasificaciones basadas en los puntajes de matemáticas, entonces la consulta se escribe de la siguiente manera.
SELECT id, name, mathematics, RANK() OVER(ORDER BY Mathematics DESC) as 'Rank' from MarkList;
Salida:
La salida será la siguiente.
IDENTIFICACIÓN | NOMBRE |
MATEMÁTICAS |
RANGO |
---|---|---|---|
501 | Surya |
99 |
1 |
502 | Charan |
99 |
1 |
505 | ario |
94 |
3 |
504 | RAM |
92 |
4 |
506 | sátvico |
91 |
5 |
503 | Sravan |
91 |
5 |
507 | Madhav |
90 |
7 |
Explicación :
- Cuando se ejecuta el comando SQL, la función verifica el orden y asigna los rangos a las filas respectivas.
- Luego, la tabla se muestra con los rangos según el código dado.
Otros métodos:
hay muchos otros métodos que se pueden usar en lugar de RANK(). Algunos de ellos se enumeran aquí.
- ROW_NUMBER() simplemente agrega el número de fila en el lugar del rango.
- DENSE_RANK() solo da el siguiente número como el siguiente rango. Esto no depende de la frecuencia de otros rangos.
Publicación traducida automáticamente
Artículo escrito por rakshitadiraj y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA