Форум: "Базы";
Текущий архив: 2008.09.07;
Скачать: [xml.tar.bz2];
ВнизПовторяющиеся значения поля Найти похожие ветки
← →
rebroff (2008-03-12 13:54) [0]Нужно выбрать строки таблицы А, в которых совпадают значения поля F2,но разные значения поля F1.
Пример:
F1 | F2
-----------
100 | 200
112 | 200
← →
Сергей М. © (2008-03-12 14:00) [1]select F1, F2, count(F2)
from A
order by F2
group by F2
having count(F2) > 1
← →
Sergey13 © (2008-03-12 14:02) [2]select f2,count(*)
from table
group by f2
having count(*)>1
← →
rebroff (2008-03-12 14:05) [3]а как быть с записями, у которых равны и f1 и f2? Их выбирать не нужно.
← →
Сергей М. © (2008-03-12 14:10) [4]select ..from .. where F1<>F2 .. и т.д.
← →
rebroff (2008-03-12 14:12) [5]Не значения полей между собой, а значения полей в разных записях.
f1 в одной записи равно f1 - в другой. Такие строки не выбираются.
← →
rebroff (2008-03-12 14:15) [6]Т.е. значения f2 в разных записях равны, а значения f1 - нет.
Например:
111 Вася
222 Вася
------------
Такие выбираем
А такие-нет:
444 Петя
444 Петя
← →
Сергей М. © (2008-03-12 14:18) [7]см. по аналогии с [1]
по полю F1 добавляешь сч-к, группировку и доп.условие отбора по сч-ку в HAVING-выражении
← →
rebroff (2008-03-12 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 строк :((
← →
Сергей М. © (2008-03-12 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 (2008-03-12 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 строк
← →
Сергей М. © (2008-03-12 14:34) [11]А если из версии [10] убрать
and count(a.tin)=1
то тоже 0 ?
← →
rebroff (2008-03-12 14:36) [12]Это в смысле "а был ли мальчик?":)
Нет, не 0.
← →
Сергей М. © (2008-03-12 14:37) [13]
> не 0.
>
А что видишь ?
Приведи фрагмент реального набора и выдели строки, которые не должны были в него попасть
← →
Сергей М. © (2008-03-12 14:38) [14]И СУБД какая ?
← →
rebroff (2008-03-12 14:43) [15]TIN ADR_NS D_REG_CSTI
-----------------------------------------------------------------
25810001 ул. Кирова....... 28.01.2002
25810001 ул. Кирова...... 01.05.2004
Эти строки не должны были попасть в выборку, т.к. TIN одинаковый.
← →
sniknik © (2008-03-12 14:45) [16]> в которых совпадают значения поля F2,но разные значения поля F1.
> Пример:
> F1 | F2
> -----------
> 100 | 200
> 112 | 200
SELECT DISTINCT F1, F2 FROM Table WHERE F2=200
← →
rebroff (2008-03-12 14:46) [17]ORACLE 9i
Запрос набираю в Нафигаторе.
← →
Сергей М. © (2008-03-12 14:48) [18]
> rebroff (12.03.08 14:43) [15]
А где в этом фрагменте поля счетчиков ?
← →
rebroff (2008-03-12 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
← →
Сергей М. © (2008-03-12 14:58) [20]И это соответствует действительности ?
← →
rebroff (2008-03-12 15:01) [21]Нет, на самом деле таких записей - 14.
← →
Johnmen © (2008-03-12 15:03) [22]
> rebroff (12.03.08 14:43) [15]
> Эти строки не должны были попасть в выборку,
> т.к. TIN одинаковый.
По какому критерию определяется попадающая строка?
← →
Сергей М. © (2008-03-12 15:08) [23]
> на самом деле таких записей - 14.
Каких "таких" ?
Я о сравнении рез-тов группирующего запроса с результатами "обычного" ..
← →
Сергей М. © (2008-03-12 15:34) [24]Какая из используемых таблиц имеет первичное ключевое поле ?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2008.09.07;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.004 c