Tengo una tabla de visitas de pacientes, donde cada fila es una visita. Hay una columna con la identificación única del paciente para indicar para qué cliente fue la visita. Me gustaría agregar otra columna que muestre la enésima aparición de esa identificación de paciente dentro del conjunto de datos. Entonces, la primera visita mostraría 1, la segunda visita mostraría 2 y así sucesivamente. Intenté buscar preguntas similares pero aún no he encontrado nada, ¡su ayuda será muy apreciada!

0
isaacvee 25 feb. 2021 a las 03:07

1 respuesta

La mejor respuesta

Puede enumerar los valores usando row_number():

select v.*,
       row_number() over (partition by patient_id order by visit_date) as seqnum
from visits v;

Esto se llama una función de ventana (o más específicamente una función de clasificación ). Enumera las filas sin espacios a partir de 1 para cada "partición" (es decir, cada patient_id). El order by especifica el orden.

0
Gordon Linoff 25 feb. 2021 a las 00:54