Enumerar Registros SQL con ROW_NUMBER

Hola a tod@s, aquí os dejo como Enumerar registros de Sql con row_number, de aquellas tablas que no tienen Id o que quieres que te los reenumere de otra manera, bueno vamos a ello.

1 Lo primero que te dejo es la estructura de datos que vamos a manejar para que el ejemplo no se repita con el mismo texto y verlo mas sencillo le daré un alias a la tabla (Nombres)

Recuerda que en el from de la select que vamos a realizar sustituye nombres por lo que viene a continuación

Aquí los Datos, que sustituirás por nombres.

select ‘Roberto’ as nombre ,’Hombre’ as Sexo union all
select ‘Elena’ as nombre ,’Mujer’ as Sexo union all
select ‘Julian’ as nombre ,’Hombre’ as Sexo union all
select ‘Marcos’ as nombre ,’Hombre’ as Sexo union all
select ‘Marta’ as nombre ,’Mujer’ as Sexo union all
select ‘Monica’ as nombre ,’Mujer’ as Sexo

2 Primer ejemplo enumerar todos los registros,

Vamos a enumerar los registros ordenandolos por Nombre, de tal que lo que necesitamos es el row_number y el campo de ordenacion , es facil queda algo asi

select ROW_NUMBER() over(order by Nombre) as Id,Nombre,sexo from (“Nombres”)

El resultado de select es

1 Elena Mujer
2 Julian Hombre
3 Marcos Hombre
4 Marta Mujer
5 Monica Mujer
6 Roberto Hombre

3 Bien ahora vamos a enumerarlo por nombre y sexo

select ROW_NUMBER() over(order by sexo,Nombre) as Id,Nombre,sexo from(“Nombres”)

y su resultado es:

Id Nombre sexo
1 Julian Hombre
2 Marcos Hombre
3 Roberto Hombre
4 Elena Mujer
5 Marta Mujer
6 Monica Mujer

4 Ya solo nos queda el ultimo ejemplo ordenado por grupos para ello aplicaremos la sentencia Partition by dentro de la sección del Over de tal manera como indico a continuación

select ROW_NUMBER() over(partition by sexo order by sexo,Nombre) as Id,Nombre,sexo from (“nombres”)


Los grupos quedan asi

Id Nombre sexo
1 Julian Hombre
2 Marcos Hombre
3 Roberto Hombre
1 Elena Mujer
2 Marta Mujer
3 Monica Mujer

como ves a creado dos enumerados agrupados por sexo….

Bueno hasta aquí el post. espero que te sirva

Visita mi canal de youtube aquí

quizás te interese ……crear indices faltante para mejorar el rendimiento de SQL aqui

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.