Oracle contando el número de ocurrencias IGUALES y DIFERENTES
Tengo una tabla que contiene dos CLOBS, que estoy en proceso de rediseñar para que contengan 1 CLOB por fila.
Tengo una consulta a continuación que identifica si los CLOBS son iguales o no, lo cual funciona bien.
Puedo usar algo de ayuda con una consulta que resume el número de columnas IGUALES y DIFERENTES.
Estoy buscando producir una salida como sigue:
Total_filas cnt_iguales cnt_diferentes
3 1 2
Cualquier ayuda sería muy apreciada. Gracias a todos los que respondan.
CREATE TABLE tabla_x(
seq_num INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1) NOT NULL,
val NUMBER,
clob1 CLOB,
clob2 CLOB);
INSERT INTO tabla_x (val, clob1, clob2) VALUES (1,’aaaaaaaaaa’,’aaaaaaaaaa’);
INSERT INTO tabla_x (val, clob1, clob2) VALUES (1,’aaaaa’,’aaaaaaaaaa’);
INSERT INTO tabla_x (val, clob1, clob2) VALUES (2,’Xaaaaaaaaa’,’aaaaaaaaaa’);
SELECT x.*,
CASE DBMS_LOB.compare (x.clob1, x.clob2) WHEN 0 THEN ‘IGUAL’ ELSE ‘DIFERENTE’ END AS comparacion
FROM tabla_x x;
SEQ_NUM VAL CLOB1 CLOB2 COMPARACION
1 1 aaaaaaaaaa aaaaaaaaaa IGUAL
2 1 aaaaa aaaaaaaaaa DIFERENTE
3 2 Xaaaaaaaaa aaaaaaaaaa DIFERENTE
davy.ai
Para resumir el número de CLOBs IGUALES y DIFERENTES en filas separadas, puedes utilizar una combinación de las funciones GROUP BY y COUNT en tu consulta. La consulta debería lucir como sigue:
Esta consulta devolverá el siguiente resultado asumiendo que ejecutas las sentencias
insert
anteriores de nuevo.En esta salida,
TOTAL_ROWS
representa el número total de filas en la tabla,SAME_CNT
representa el número de filas con CLOBs idénticos, yDIFFERENT_CNT
representa el número de filas con CLOBs diferentes.¡Espero que esto sea de ayuda!