Hay una función SQL que se llama ROW_NUMBER(). Nos permite numerar en orden (ascedente o descendente) las filas o registros de un query sql ejecutado.
Por ejemplo, en un mes mis empleados hicieron sus visitas de mantención a nuestros clientes. Quiero numerar sus visitas.
Visita Empleado Cliente
1 Juan Perez Empresa001
2 Juan Perez Empresa002
3 Juan Perez EmpresaAAA
4 Juan Perez Empresa951
5 Pedro Palotes Empresa357
6 Pedro Palotes Empresa555
7 Tobias Sanchez EmpresaXYZ
8 Julio Cortez EmpresaQWE
Pero resulta que el ROW_NUMBER está numerando las filas sin hacer alguna distinción. Yo quisiera que se numeren de acuerdo a cierto campo en este caso el empleado. Quedería así...
Visita Empleado Cliente
1 Juan Perez Empresa001
2 Juan Perez Empresa002
3 Juan Perez EmpresaAAA
4 Juan Perez Empresa951
1 Pedro Palotes Empresa357
2 Pedro Palotes Empresa555
1 Tobias Sanchez EmpresaXYZ
1 Julio Cortez EmpresaQWE
Muy bien, para ello utilizamos el "partition by" del ROW_NUMBER... así (parte del SELECT):
row_number() over (partition by v.id_responsable order by v.fecha asc) as Visita
Había sido sencillo, no?
HaPPy CoDiNg