Конференция "Базы" » как выбрать все дубликаты талицы SQL запросом [D7, dBase, FoxPro]
 
  • Роман (29.01.09 10:52) [0]
    как выбрать все дубликаты талицы SQL запросом ?

    что б не число дубликатов а дубликаты все выходили !

    пример

    НЕ
    ИВАНОВ ИВАН ИВАНОВИЧ 2
    а так
    ИВАНОВ ИВАН ИВАНОВИЧ
    ИВАНОВ ИВАН ИВАНОВИЧ
    Сделать
  • Ega23 © (29.01.09 11:04) [1]

    select  aName, Count(aName) as Count
    from Table
    group by aName
    having count(aName)>1

  • Johnmen © (29.01.09 11:05) [2]
    SELECT T1.F, T1.I, T1.O FROM Table T1
     GROUP BY T1.F, T1.I, T1.O
     HAVING COUNT(*)>1

  • Anatoly Podgoretsky © (29.01.09 11:32) [3]
    > Ega23  (29.01.2009 11:04:01)  [1]

    Это не даст результата, тут надо громоздить с вложеными запросами.
    Ему надо не по одной строчке, как в группирование, а все, но только в том случае если дубли.
    Видимо плохо спроектирована таблица, и теперь он пытается удалить лишнее.
  • Johnmen © (29.01.09 11:34) [4]

    > Anatoly Podgoretsky ©   (29.01.09 11:32) [3]
    > Ему надо не по одной строчке, как в группирование, а все, но только в том случае если дубли.

    Нам он этого не говорил :)
  • Ega23 © (29.01.09 11:35) [5]

    > Ему надо не по одной строчке, как в группирование, а все,
    >  но только в том случае если дубли.


    Снимаю шляпу перед твоим телепатором.
  • Кщд (29.01.09 11:39) [6]
    >Johnmen ©   (29.01.09 11:34) [4]
    он это ясно сказал: "что б не число дубликатов а дубликаты все выходили !"
    да ещё и с примером)
  • Johnmen © (29.01.09 11:48) [7]

    > Кщд   (29.01.09 11:39) [6]

    Что именно он сказал ясно? Дубликаты чего?
  • Anatoly Podgoretsky © (29.01.09 12:07) [8]
    > Ega23  (29.01.2009 11:35:05)  [5]

    Он привел два примера, то чего он не хочет и наоборот.
  • Роман (29.01.09 12:14) [9]
    ЕСть таблица допустим 1.dbf

    мне нужены к ней запросы по выявлению двойных записей и еще кое что

    Вот пробую по разному и ищу тоже везде только одна строка выходит

    допустим ИВАНОВ ИВАН ИВАНОВИЧ и количтво например 5

    а мне на до чтобы выхолило

    ИВАНОВ ИВАН ИВАНОВИЧ
    ИВАНОВ ИВАН ИВАНОВИЧ
    ИВАНОВ ИВАН ИВАНОВИЧ
    ИВАНОВ ИВАН ИВАНОВИЧ
    ИВАНОВ ИВАН ИВАНОВИЧ
  • Sergey13 © (29.01.09 12:20) [10]
    > [9] Роман   (29.01.09 12:14)

    Я внесу свою лепту телепатирования.
    Подозреваю, что в таблице есть и другие поля, которые НЕ повторяются. Если они тебе нужны и ты их просто не написал в примере, то приведенные запросы не сработают или сработают неправильно. Если других полей нет, то в топку такую таблицу.
  • Кщд (29.01.09 12:26) [11]
    >Johnmen ©   (29.01.09 11:48) [7]
    >Что именно он сказал ясно? Дубликаты чего?
    дубликаты ФИО (одно это поле или несколько здесь не суть)
    и его пример ясно показал, что group by его не устраивает
    однако, и ответ (1), и ответ (2) его содержат
    и после этого автора обвинили в том, что он "прячет и утаивает")
    не первый раз замечаю такое поведение здесь от уважаемых мной людей(в частности, Вас)
    прошу прощения, что вырвалось)
    впрочем, это оффтоп - молчу-молчу)
  • Роман (29.01.09 12:51) [12]
    :)))
  • Ega23 © (29.01.09 13:02) [13]

    > мне нужены к ней запросы по выявлению двойных записей


    В [1] и [2] тебе ответили.
    Если тебя это чем-то не устраивает, то у тебя уже есть начальный инструментарий для дальнейшего наращивания запроса. Например

    Select * from Table
    where FIO in (см. запрос [2])



    И потом, как ты будешь решать, кто из них реальная запись, а кто - дубликат (правда это уже твои проблемы).


    > дубликаты ФИО (одно это поле или несколько здесь не суть)


    Суть, и очень существенная. Потому что неизвестно, что есть первичный ключ.  Потому как если PK не вот это вот самое ФИО, то тогда это никакие не дубликаты а вполне себе самостоятельные сущности.


    > и его пример ясно показал, что group by его не устраивает


    Ясно только одно, что он чуть-чуть подумать не хочет.
  • Роман (29.01.09 13:14) [14]
    >>> В [1] и [2] тебе ответили.

    Эти ответы я еще 2 дня назад

    мне нужно что бы выполнял другие задачи  Если б знал то у МАСТЕРОВ БЫ НЕ СПРАШИВАЛ
  • Ega23 © (29.01.09 13:23) [15]

    > мне нужно что бы выполнял другие задачи  Если б знал то
    > у МАСТЕРОВ БЫ НЕ СПРАШИВАЛ


    Ну ты в своём праве...
  • Sergey13 © (29.01.09 13:30) [16]
    > [14] Роман   (29.01.09 13:14)

    Ну так другие то поля в таблице есть? Они то же повторяются?
  • Кщд (29.01.09 13:42) [17]
    >Ega23 ©   (29.01.09 13:02) [13]
    >Суть, и очень существенная. Потому что неизвестно, что есть первичный >ключ.  Потому как если PK не вот это вот самое ФИО, то тогда это никакие не >дубликаты а вполне себе самостоятельные сущности.
    простите, а какая, собственно, разница "самостоятельная" эта сущность, али нет, если мне необходимо получить дубликаты по полю(или кортежу)? :)

    >Роман   (29.01.09 13:14) [14]
    структуру таблицы-то обнажите?
  • Роман (29.01.09 13:44) [18]
    Повторяться поля  F  I  O  god  

    Остальные не повторяются  rt  ft  ko  se rf guyu fft sss
  • Кщд (29.01.09 14:02) [19]
    >Роман   (29.01.09 13:44) [18]
    см. Ega23 ©   (29.01.09 13:02) [13]
  • Кщд (29.01.09 14:04) [20]
    >Ega23 ©   (29.01.09 13:02) [13]
    >Ясно только одно, что он чуть-чуть подумать не хочет.
    человек просто не знает SQL
  • Ega23 © (29.01.09 14:05) [21]

    > простите, а какая, собственно, разница "самостоятельная"
    > эта сущность, али нет, если мне необходимо получить дубликаты
    > по полю(или кортежу)? :)


    Есть разница. Какая из этих сущностей "главнее"? Какую будем оставлять, а какую - выкидывать?
  • Ega23 © (29.01.09 14:06) [22]

    > человек просто не знает SQL


    Судя по тому, что он пишет что знает про
    group by having count>1

    ....
  • AndreyV © (29.01.09 14:19) [23]
    > [21] Ega23 ©   (29.01.09 14:05)
    > Есть разница. Какая из этих сущностей "главнее"? Какую будем
    > оставлять, а какую - выкидывать?

    Может автор не хочет выкидывать, а делает проверку на предмет визуального контроля ошибок ввода: тёзка или оператор накосячил.
  • Johnmen © (29.01.09 14:24) [24]

    > Кщд   (29.01.09 12:26) [11]

    Мне очень странно твоё возмущение на ровном месте. Ибо автор к моменту поста [6] НИКАКОЙ ясности про дубликаты НЕ ОБОЗНАЧИЛ, как и НЕ ОБОЗНАЧИЛ того, что есть "его пример", и то, что "group by его не устраивает"...
  • Кщд (29.01.09 14:25) [25]
    >Ega23 ©   (29.01.09 14:05) [21]
    >Какую будем оставлять, а какую - выкидывать?
    удаление дубликатов - совсем другой коленкор)
    но, как-будто, автор хотел посмотреть, а не удалить...
  • Ega23 © (29.01.09 14:27) [26]

    > Может автор не хочет выкидывать, а делает проверку на предмет
    > визуального контроля ошибок ввода: тёзка или оператор накосячил.


    А как ты это определишь, не зная больше ничего про эту таблицу.

    З.Ы. Было дело, делал "Бюро пропусков". В базе было ~ 15000 народу. Повторений по ФИО было ну не то чтобы дофига, но были.
    Но люди-то - разные!
  • Роман (29.01.09 14:28) [27]
    Абсолютно нет ризницы какие поля если Вы приведете пример с вымышленными полями я и на этом буду благодарен

    Мой код SQL такой

    select <поле>,count(*) from table group by <поле> having count(*) > 1

    Для меня он  не подходит так как выводит одно повторяющеюся строку и сумму сколько их ,

    мне нужно чтоб сколько были столько и выходили

    SQL изучаю но еще плохо знаю
  • AndreyV © (29.01.09 14:29) [28]
    > [23] AndreyV ©   (29.01.09 14:19)

    Впрочем, какая-то уникальность записи должна быть, иначе действительно в топку такую таблицу.
  • AndreyV © (29.01.09 14:30) [29]
    > [26] Ega23 ©   (29.01.09 14:27)
    > А как ты это определишь, не зная больше ничего про эту таблицу.
    > Но люди-то - разные!

    Уже ответил.
  • Виталий Панасенко (29.01.09 14:33) [30]
    select <поле> from table where <поле> in (
    select <поле> from table group by <поле> having count(*) > 1)
  • Роман (29.01.09 14:45) [31]
    Спасибо всем буду пробовать
  • Кщд (29.01.09 14:49) [32]
    >AndreyV ©   (29.01.09 14:29) [28]
    >Впрочем, какая-то уникальность записи должна быть, иначе >действительно в топку такую таблицу.
    да-да
    для поиска дубликатов в табличке без UK и/или PK необходимо её(табличку, то бишь) вначале дропнуть - распространенная практика)
  • Anatoly Podgoretsky © (29.01.09 15:50) [33]
    Как обычно вместо объяснения задачи, для чего это нужно, автор обсуждает свое преставление ее решения.
 
Конференция "Базы" » как выбрать все дубликаты талицы SQL запросом [D7, dBase, FoxPro]
Есть новые Нет новых   [134477   +40][b:0][p:0.001]