Конференция "Базы" » Повторяющиеся значения поля
 
  • rebroff (12.03.08 13:54) [0]
    Нужно выбрать строки таблицы А, в которых совпадают значения поля F2,но разные значения поля F1.
    Пример:
    F1 | F2
    -----------
    100 | 200
    112 | 200
  • Сергей М. © (12.03.08 14:00) [1]
    select F1, F2, count(F2)
    from A
    order by F2
    group by F2
    having count(F2) > 1
  • Sergey13 © (12.03.08 14:02) [2]
    select f2,count(*)
    from table
    group by f2
    having count(*)>1
  • rebroff (12.03.08 14:05) [3]
    а как быть с записями, у которых равны и f1 и f2? Их выбирать не нужно.
  • Сергей М. © (12.03.08 14:10) [4]
    select ..from .. where F1<>F2 .. и т.д.
  • rebroff (12.03.08 14:12) [5]
    Не значения полей между собой, а значения полей в разных записях.
    f1 в одной записи равно f1 - в другой. Такие строки не выбираются.
  • rebroff (12.03.08 14:15) [6]
    Т.е. значения f2 в разных записях равны, а значения f1 - нет.
    Например:
    111   Вася
    222   Вася
    ------------
    Такие выбираем

    А такие-нет:
    444   Петя
    444   Петя
  • Сергей М. © (12.03.08 14:18) [7]
    см. по аналогии с [1]
    по полю F1 добавляешь сч-к, группировку и доп.условие отбора по сч-ку в HAVING-выражении
  • rebroff (12.03.08 14:22) [8]

    select

    a.tin,a.c_sti_main, a.adr_ns, b.d_reg_sti, count(a.adr_ns), count(a.tin)

    from r21paddr a, r21taxpay b

    where a.tin=b.tin

    group by  a.tin,a.adr_ns,a.c_sti_main,b.d_reg_sti

    having count(a.adr_ns)>1 and count(a.tin)=1



    Вернул 0 строк :((
  • Сергей М. © (12.03.08 14:27) [9]
    select F1, F2, count(F2), count(F1)
    from A
    group by F2, F1
    having count(F2)>1 and count(F1)=1
  • rebroff (12.03.08 14:31) [10]

    select a.tin,a.c_sti_main, a.adr_ns,b.d_reg_sti,count(a.adr_ns),count(a.tin)
    from r21paddr a,r21taxpay b
    where a.tin=b.tin
    group by  a.adr_ns,a.tin,a.c_sti_main,b.d_reg_sti
    having count(a.adr_ns)>1 and count(a.tin)=1


    та же петрушка...
    0 строк
  • Сергей М. © (12.03.08 14:34) [11]
    А если из версии [10] убрать

    and count(a.tin)=1



    то тоже 0 ?
  • rebroff (12.03.08 14:36) [12]
    Это в смысле "а был ли мальчик?":)
    Нет, не 0.
  • Сергей М. © (12.03.08 14:37) [13]

    > не 0.
    >


    А что видишь ?

    Приведи фрагмент реального набора и выдели строки, которые не должны были в него попасть
  • Сергей М. © (12.03.08 14:38) [14]
    И СУБД какая ?
  • rebroff (12.03.08 14:43) [15]
    TIN                  ADR_NS                            D_REG_CSTI
    -----------------------------------------------------------------
    25810001          ул. Кирова.......                 28.01.2002
    25810001          ул. Кирова......                  01.05.2004

    Эти строки не должны были попасть в выборку, т.к. TIN одинаковый.
  • sniknik © (12.03.08 14:45) [16]
    > в которых совпадают значения поля F2,но разные значения поля F1.
    > Пример:
    > F1 | F2
    > -----------
    > 100 | 200
    > 112 | 200
    SELECT DISTINCT F1, F2 FROM Table WHERE F2=200
  • rebroff (12.03.08 14:46) [17]
    ORACLE 9i
    Запрос набираю в Нафигаторе.
  • Сергей М. © (12.03.08 14:48) [18]

    > rebroff   (12.03.08 14:43) [15]


    А где в этом фрагменте поля счетчиков ?
  • rebroff (12.03.08 14:52) [19]
    TIN              ADR_NS              D_REG_CSTI    COUNT(a.adr_ns)   COUNT(a.tin)----------------------------------------------------------------------------
    25810001      ул. Кирова.......   28.01.2002             48                    48
    25810001      ул. Кирова......    01.05.2004             12                    12
 
Конференция "Базы" » Повторяющиеся значения поля
Есть новые Нет новых   [134431   +15][b:0][p:0.001]