Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Удаление дублирующихся значений! [MSSQL]


Behemoth ©   (2003-10-28 08:52:00) 

Задачка на сообразительность. Думаю каждый не раз сталкивался с этим.
Есть таблица (ID,Field1, Field2,...) в которой встречаются дублирующие значения Filed1. Как правильнее вывести все строки с дублирующимися значеними Field1?

Я, кроме как проверки в цикле по всем значениям, придумать ничего не смог. Есть ли другой вариант?


Behemoth   (2003-10-28 10:10:00) [1]

Я знал что мне здесь помогут. Спасибо!


Johnmen   (2003-10-28 10:04:00) [2]

>Жук © (28.10.03 10:02)

Ну невнимателен был... Так сразу бы и поправил...:)


Жук   (2003-10-28 10:02:00) [3]


> Johnmen © (28.10.03 09:58) [6]
> Обоснуй.

count забыл во вложенном запросе :-)


Дуся   (2003-10-28 10:02:00) [4]

Johnmen © (28.10.03 09:58)
Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.


paul_k   (2003-10-28 10:02:00) [5]

1. Следующий запрос - сколько раз поле Field встречается в таблице Table
select Field,count(Field)
from Table
group by Field
having count(Field)>1


1. Следующий запрос - строки таблицы Table в которых есть дублированное значение Field
select * from table
where Field in (select t2.Field
from table t2
group by t2.Field
having count(t2.Field)>1)


Johnmen   (2003-10-28 09:58:00) [6]

>Жук © (28.10.03 09:32)

Обоснуй.


Digitman   (2003-10-28 09:33:00) [7]

тогда - вложенный запрос :

select * from table
where field1 in (
select Field1, count(Field1) from table
group by Field1
having count(Field1) > 1
)
order by Field1


Жук   (2003-10-28 09:32:00) [8]


> Johnmen © (28.10.03 09:28) [3]

Не будет работать :-)))


Johnmen   (2003-10-28 09:28:00) [9]

SELECT * FROM Table T1
WHERE 1<(SELECT * FROM Table T2 WHERE T1.Field1=T2.Field1)


Жук   (2003-10-28 09:19:00) [10]


> Digitman © (28.10.03 09:06)

Не будет работать


Digitman   (2003-10-28 09:06:00) [11]

select ID, Field1, Field2, ..., count(Field1)
from ТАБЛИЦА
group by Field1
having count(Field1) > 1
order by ...


Наверх

Титульная страница Поиск, карта сайта Написать письмо