-
как выбрать все дубликаты талицы SQL запросом ?
что б не число дубликатов а дубликаты все выходили !
пример
НЕ
ИВАНОВ ИВАН ИВАНОВИЧ 2
а так
ИВАНОВ ИВАН ИВАНОВИЧ
ИВАНОВ ИВАН ИВАНОВИЧ
Сделать
-
select aName, Count(aName) as Count
from Table
group by aName
having count(aName)>1
-
SELECT T1.F, T1.I, T1.O FROM Table T1
GROUP BY T1.F, T1.I, T1.O
HAVING COUNT(*)>1
-
> Ega23 (29.01.2009 11:04:01) [1]
Это не даст результата, тут надо громоздить с вложеными запросами.
Ему надо не по одной строчке, как в группирование, а все, но только в том случае если дубли.
Видимо плохо спроектирована таблица, и теперь он пытается удалить лишнее.
-
> Anatoly Podgoretsky © (29.01.09 11:32) [3]
> Ему надо не по одной строчке, как в группирование, а все, но только в том случае если дубли.
Нам он этого не говорил :)
-
> Ему надо не по одной строчке, как в группирование, а все,
> но только в том случае если дубли.
Снимаю шляпу перед твоим телепатором.
-
>Johnmen © (29.01.09 11:34) [4]
он это ясно сказал: "что б не число дубликатов а дубликаты все выходили !"
да ещё и с примером)
-
> Кщд (29.01.09 11:39) [6]
Что именно он сказал ясно? Дубликаты чего?
-
> Ega23 (29.01.2009 11:35:05) [5]
Он привел два примера, то чего он не хочет и наоборот.
-
ЕСть таблица допустим 1.dbf
мне нужены к ней запросы по выявлению двойных записей и еще кое что
Вот пробую по разному и ищу тоже везде только одна строка выходит
допустим ИВАНОВ ИВАН ИВАНОВИЧ и количтво например 5
а мне на до чтобы выхолило
ИВАНОВ ИВАН ИВАНОВИЧ
ИВАНОВ ИВАН ИВАНОВИЧ
ИВАНОВ ИВАН ИВАНОВИЧ
ИВАНОВ ИВАН ИВАНОВИЧ
ИВАНОВ ИВАН ИВАНОВИЧ
-
> [9] Роман (29.01.09 12:14)
Я внесу свою лепту телепатирования.
Подозреваю, что в таблице есть и другие поля, которые НЕ повторяются. Если они тебе нужны и ты их просто не написал в примере, то приведенные запросы не сработают или сработают неправильно. Если других полей нет, то в топку такую таблицу.
-
>Johnmen © (29.01.09 11:48) [7]
>Что именно он сказал ясно? Дубликаты чего?
дубликаты ФИО (одно это поле или несколько здесь не суть)
и его пример ясно показал, что group by его не устраивает
однако, и ответ (1), и ответ (2) его содержат
и после этого автора обвинили в том, что он "прячет и утаивает")
не первый раз замечаю такое поведение здесь от уважаемых мной людей(в частности, Вас)
прошу прощения, что вырвалось)
впрочем, это оффтоп - молчу-молчу)
-
:)))
-
> мне нужены к ней запросы по выявлению двойных записей
В
[1] и
[2] тебе ответили.
Если тебя это чем-то не устраивает, то у тебя уже есть начальный инструментарий для дальнейшего наращивания запроса. Например
Select * from Table
where FIO in (см. запрос [2])
И потом, как ты будешь решать, кто из них реальная запись, а кто - дубликат (правда это уже твои проблемы).
> дубликаты ФИО (одно это поле или несколько здесь не суть)
Суть, и очень существенная. Потому что неизвестно, что есть первичный ключ. Потому как если PK не вот это вот самое ФИО, то тогда это никакие не дубликаты а вполне себе самостоятельные сущности.
> и его пример ясно показал, что group by его не устраивает
Ясно только одно, что он чуть-чуть подумать не хочет.
-
>>> В [1] и [2] тебе ответили.
Эти ответы я еще 2 дня назад
мне нужно что бы выполнял другие задачи Если б знал то у МАСТЕРОВ БЫ НЕ СПРАШИВАЛ
-
> мне нужно что бы выполнял другие задачи Если б знал то
> у МАСТЕРОВ БЫ НЕ СПРАШИВАЛ
Ну ты в своём праве...
-
> [14] Роман (29.01.09 13:14)
Ну так другие то поля в таблице есть? Они то же повторяются?
-
>Ega23 © (29.01.09 13:02) [13]
>Суть, и очень существенная. Потому что неизвестно, что есть первичный >ключ. Потому как если PK не вот это вот самое ФИО, то тогда это никакие не >дубликаты а вполне себе самостоятельные сущности.
простите, а какая, собственно, разница "самостоятельная" эта сущность, али нет, если мне необходимо получить дубликаты по полю(или кортежу)? :)
>Роман (29.01.09 13:14) [14]
структуру таблицы-то обнажите?
-
Повторяться поля F I O god
Остальные не повторяются rt ft ko se rf guyu fft sss
-
>Роман (29.01.09 13:44) [18]
см. Ega23 © (29.01.09 13:02) [13]
-
>Ega23 © (29.01.09 13:02) [13]
>Ясно только одно, что он чуть-чуть подумать не хочет.
человек просто не знает SQL
-
> простите, а какая, собственно, разница "самостоятельная"
> эта сущность, али нет, если мне необходимо получить дубликаты
> по полю(или кортежу)? :)
Есть разница. Какая из этих сущностей "главнее"? Какую будем оставлять, а какую - выкидывать?
-
> человек просто не знает SQL
Судя по тому, что он пишет что знает про
group by having count>1
....
-
> [21] Ega23 © (29.01.09 14:05)
> Есть разница. Какая из этих сущностей "главнее"? Какую будем
> оставлять, а какую - выкидывать?
Может автор не хочет выкидывать, а делает проверку на предмет визуального контроля ошибок ввода: тёзка или оператор накосячил.
-
> Кщд (29.01.09 12:26) [11]
Мне очень странно твоё возмущение на ровном месте. Ибо автор к моменту поста [6] НИКАКОЙ ясности про дубликаты НЕ ОБОЗНАЧИЛ, как и НЕ ОБОЗНАЧИЛ того, что есть "его пример", и то, что "group by его не устраивает"...
-
>Ega23 © (29.01.09 14:05) [21]
>Какую будем оставлять, а какую - выкидывать?
удаление дубликатов - совсем другой коленкор)
но, как-будто, автор хотел посмотреть, а не удалить...
-
> Может автор не хочет выкидывать, а делает проверку на предмет
> визуального контроля ошибок ввода: тёзка или оператор накосячил.
А как ты это определишь, не зная больше ничего про эту таблицу.
З.Ы. Было дело, делал "Бюро пропусков". В базе было ~ 15000 народу. Повторений по ФИО было ну не то чтобы дофига, но были.
Но люди-то - разные!
-
Абсолютно нет ризницы какие поля если Вы приведете пример с вымышленными полями я и на этом буду благодарен
Мой код SQL такой
select <поле>,count(*) from table group by <поле> having count(*) > 1
Для меня он не подходит так как выводит одно повторяющеюся строку и сумму сколько их ,
мне нужно чтоб сколько были столько и выходили
SQL изучаю но еще плохо знаю
-
> [23] AndreyV © (29.01.09 14:19)
Впрочем, какая-то уникальность записи должна быть, иначе действительно в топку такую таблицу.
-
> [26] Ega23 © (29.01.09 14:27)
> А как ты это определишь, не зная больше ничего про эту таблицу.
> Но люди-то - разные!
Уже ответил.
-
select <поле> from table where <поле> in (
select <поле> from table group by <поле> having count(*) > 1)
-
Спасибо всем буду пробовать
-
>AndreyV © (29.01.09 14:29) [28]
>Впрочем, какая-то уникальность записи должна быть, иначе >действительно в топку такую таблицу.
да-да
для поиска дубликатов в табличке без UK и/или PK необходимо её(табличку, то бишь) вначале дропнуть - распространенная практика)
-
Как обычно вместо объяснения задачи, для чего это нужно, автор обсуждает свое преставление ее решения.