tengo los siguientes datos en la tablaOracle SQL asignar números consecutivos a un subconjunto basado en la columna valores
ID_1 ID_2 SEQ GROUP 212648 601327 1 212648 1805 2 212648 500886 3 212648 3405 4 212648 501174 5 212648 201245 6 212648 500449 7 212648 3804 8 212648 501533 9 212648 3989 10 212648 500280 11 START 212648 175 12 BETWEEN 212648 500395 13 END 212648 1817 14 212648 500945 15 START 212648 183 16 BETWEEN 212648 500543 17 BETWEEN 212648 181 18 BETWEEN 212648 500009 19 END 212648 5576 20 212648 500960 21 212648 5562 22 212648 603659 23
Me gustaría añadir una columna que se aplicará un nombre de grupo para las filas entre 'START" y 'FIN' Por ejemplo:.
ID_1 ID_2 SEQ GROUP GROUP_SEQ 212648 601327 1 212648 1805 2 212648 500886 3 212648 3405 4 212648 501174 5 212648 201245 6 212648 500449 7 212648 3804 8 212648 501533 9 212648 3989 10 212648 500280 11 START 1 212648 175 12 BETWEEN 1 212648 500395 13 END 1 212648 1817 14 212648 500945 15 START 2 212648 183 16 BETWEEN 2 212648 500543 17 BETWEEN 2 212648 181 18 BETWEEN 2 212648 500009 19 END 2 212648 5576 20 212648 500960 21 212648 5562 22 212648 603659 23
que buscan en las funciones analíticas de Oracle (RANK(), primero, último(), etc.), pero no pude encontrar una solución Gracias de antemano por cualquier. respuestas
Corrija si soy incorrecto pero no puede normalizar la tabla y evitar esto? –
Los valores de columna SEQ y GROUP son valores calculados de subselects. Reduje el tamaño de la mesa para presentar el problema. ¿En qué normalización estabas pensando? – chipix
La segunda forma normal indica que todas las columnas que no son clave dependen funcionalmente de la clave primaria completa. –