SQL Server - Logica para discriminar por subconjunto comparativo fila anterior

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 4 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Logica para discriminar por subconjunto comparativo fila anterior

Publicado por Carlos (2 intervenciones) el 17/10/2018 17:53:24
Espero que alguien me pueda ayudar con el siguiente problema:
Tengo una tabla en SQL Server "Encuestas" con los campos:

- Item
- Fecha
- ID_Unico
- Id_Cliente
- Calificacion

Para el campo "Calificación" se tiene (1, 2, 3) donde 1 es bueno, 2 es regular y 3 es malo.

Lo que se quiere hallar es aquellos "Id_Cliente" que en el tiempo bajaron en su "Calificación" es decir si por ejemplos:
- (3;1); tienen 2 encuestas siendo la mas reciente (según "fecha") calificación 3 y la anterior calificación 1 esta debería ser marcada en un campo adicional como "SI"
- (2;1;3;3); tiene 4 encuestas en la mas reciente tiene calificación 2 y la anterior 1, entonces debe ser un "SI".
- (1;3;3;3;3;1); tiene 6 encuestas, en la última tiene un 1 y la penúltima 3, entonces es un "NO"
- (3;3;3;1;1); tiene 5 encuestas, en la última es un 3 y luego sigue siendo 3 hasta que cambia a 1, debe ser un "SI" por que en algún momento cambió.
- (1;1;1;1;1); tienen 5 encuestas todas son iguales debe serun "NO",
etc.....

Lo que se busca es SOLO aquellas variaciones a menos comparando la encuesta mas reciente contra la anterior o si la anterior es igual con la variación mas reciente.

Lo que he hecho hasta el momento es discriminar aquellas que solo tienen 1 encuesta (no hay variación en 1 sola encuesta), crear una columna adicional con "ROW_NUMBER() OVER(PARTITION BY ...." para enumerar en vez de usar las fechas para grupo de "Id_Cliente" del 1 hasta la cantidad de "Id_Cliente" que se tenga.

Adjunto Archivo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder