¿Cuál es la instrucción SQL más simple que devolverá los valores duplicados para una columna dada y el recuento de sus ocurrencias en una tabla de base de datos Oracle?
Por ejemplo: tengo una JOBS
tabla con la columna JOB_NUMBER
. ¿Cómo puedo saber si tengo duplicados JOB_NUMBER
y cuántas veces están duplicados?
sql
oracle
duplicate-data
Andrés
fuente
fuente
Respuestas:
fuente
group by
, como en:select column_one, column_two, count(*) from tablename group by column_one, column_two having count(column_one) > 1;
etc.having count(*) > 1
: DDe otra manera:
Funciona bien (lo suficientemente rápido) cuando hay un índice activado
column_name
. Y es una mejor manera de eliminar o actualizar filas duplicadas.fuente
Más simple que se me ocurre:
fuente
Ni siquiera necesita tener el recuento en las columnas devueltas si no necesita saber el número real de duplicados. p.ej
fuente
Qué tal si:
Para responder al ejemplo anterior, se vería así:
fuente
En caso de que varias columnas identifiquen una fila única (por ejemplo, tabla de relaciones), puede usar lo siguiente
Utilice la identificación de la fila, por ejemplo, emp_dept (empid, deptid, startdate, enddate) suponga que empid y deptid son únicos e identifiquen la fila en ese caso
y si dicha tabla tiene una clave primaria, use la clave primaria en lugar de rowid, por ejemplo, id es pk y luego
fuente
Haciendo
le dará los identificadores de las filas duplicadas.
fuente
fuente
Usualmente uso la función Oracle Analytic ROW_NUMBER () .
Digamos que usted quiere comprobar los duplicados que tienen con respecto a un índice único o una clave principal construida sobre columnas (
c1
,c2
,c3
). Luego irá de esta manera, mostrandoROWID
s de filas donde el número de líneas traídasROW_NUMBER()
es>1
:fuente
Aquí hay una solicitud SQL para hacer eso:
fuente
Sé que es un hilo viejo pero esto puede ayudar a alguien.
Si necesita imprimir otras columnas de la tabla mientras verifica el uso duplicado a continuación:
También puede agregar algunos filtros adicionales en la cláusula where si es necesario.
fuente
1. solución
fuente
También puede intentar algo como esto para enumerar todos los valores duplicados en una tabla, por ejemplo, reqitem
fuente