/ / SQL selecciona filas que tienen (parcialmente) datos duplicados - sql, duplicate-data, oracle8i

SQL selecciona filas que tienen datos (parcialmente) duplicados: sql, duplicate-data, oracle8i

Tengo el siguiente esquema de base de datos:

Product ID | Component | ...

Identificación del producto - una clave externa

Componente - partes del producto

Por alguna razón Arcana, varios Registros tienen el mismo ID de Producto y Componente. ¿Hay alguna consulta SQL que devuelva todos los ID de producto y componentes, que tengan varios componentes idénticos?

P.ej. dada la siguiente tabla

| Product ID | Component |
--------------------------
| 1          | c1000     |
| 1          | c1100     |
| 2          | c2000     |
| 2          | c2000     |
| 2          | c2200     |
| 3          | c3000     |

La consulta SQL debe devolver:

| Product ID | Component |
--------------------------
| 2          | c2000     |

Respuestas

2 para la respuesta № 1
SELECT
ProductId,
Component
FROM
Table
GROUP BY
ProductId,
Component
HAVING
COUNT(*) > 1

2 para la respuesta № 2
SELECT ProductId, Component, count(*) Duplicates
from MyTable  --  or whatever
group by ProductId, Component
having count(*) > 1

Esto también le mostrará cuántas entradas duplicadas hay.


1 para la respuesta № 3
select "Product ID", Component
from table
group by "Product ID", Component
having count(*) > 1