SQL находит только записи, которые появляются более одного раза

#sql

#sql

Вопрос:

Я пытаюсь выбрать только те записи, которые появляются более одного раза.

Вот моя таблица, я хочу извлечь записи, которые имеют один и тот же столбец C.

 A      B                C                   D
1 | 29-005628 | 100 TIMS CREEK RD        | WD66
2 | 29-005631 | 100 TIMS CREEK RD        | WT70
3 | 29-005635 | 5300 HIDDEN MANOR CT     | WT89
4 | 29-005638 | 600 LINDLEY CRESCENT AV  | WT30
5 | 29-005639 | 100 TIMS CREEK RD        | WT89
6 | 29-003238 | 501 PARK VIEW AV         | WT60
7 | 29-009104 | 501 PARK VIEW AV         | WT80
  

Желаемый результат:

 A       B              C                     D
1 | 29-005628 | 100 TIMS CREEK RD        | WT66
2 | 29-005631 | 100 TIMS CREEK RD        | WT70
3 | 29-005639 | 100 TIMS CREEK RD        | WT89
4 | 29-003238 | 501 PARK VIEW AV         | WT60
5 | 29-009104 | 501 PARK VIEW AV         | WT80
  

Любая помощь с запросом будет оценена!

Ответ №1:

Вы можете попробовать следующее —

 select * from tablename 
where c in (select c from tablename group by c having count(c)>1)
  

Ответ №2:

Простой способ использует exists :

 select t.*
from t
where exists (select 1 from t t2 where t2.c = t.c and t2.a <> t.a);