2010-12-08 3 views
0

У меня есть следующие схемы баз данных:SQL выберите строки, которые (частично) дублированные данные

Product ID | Component | ... 

ID продукта - внешний ключ

компоненты - части продукта

Для некоторого Arcane причина, по которой количество записей имеет одинаковый идентификатор продукта & Компонент. Есть ли SQL-запрос, который возвращает все компоненты продукта &, которые имеют несколько идентичных компонентов?

E.g. учитывая следующую таблицу

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

Запрос SQL должен возвращать:

| Product ID | Component | 
-------------------------- 
| 2   | c2000  | 
+0

СУБД используется Oracle 8 –

ответ

2
SELECT 
    ProductId, 
    Component 
FROM 
    Table 
GROUP BY 
    ProductId, 
    Component 
HAVING 
    COUNT(*) > 1 
+2

Спасибо ... Я могу видеть, где я ошибся, у меня только ProductId в группе по статье! –

+0

@TK: Добро пожаловать! –

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

Это также покажет вам, сколько дубликатов записей есть.

+0

Если первая строка будет 'SELECT ProductID, компонентный, граф (*) как дублирующий'? –

1
select "Product ID", Component 
from table 
group by "Product ID", Component 
having count(*) > 1 
Смежные вопросы