Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > Выборка одинаковых данных по двум полям


Автор: chiffa 15.3.2013, 11:31
Всем добрый день. Есть таблица:


А1     А2     А3
11    555     0
11    555     1
11    888     2 
22    555     3
22    777     4
33    444     5

Необходимо выбрать одинаковые данные из поля А2, при том что бы в поле А1 значение были отличны. То есть по результату запроса получить:

А1     А2     А3
11    555     0
22    555     3


Что то никак не могу придумать как его выкрутить. Прошу вашей помощи с запросом. Заренее спасибо!

Автор: Zloxa 15.3.2013, 12:09
Цитата(chiffa @  15.3.2013,  12:31 Найти цитируемый пост)
11    555     0

почему в результирующу выборку попало именно это, а не
Цитата(chiffa @  15.3.2013,  12:31 Найти цитируемый пост)
11    555     1


Автор: chiffa 15.3.2013, 12:10
исключительно для примера, третий  столбец не особо важен

Автор: Zloxa 15.3.2013, 12:15
Цитата(chiffa @  15.3.2013,  13:10 Найти цитируемый пост)
 третий  столбец не ... важен 

Цитата(chiffa @  15.3.2013,  12:31 Найти цитируемый пост)
 выбрать одинаковые данные из поля А2, при том что бы в поле А1 значение были отличны.

Код

select distinct A1,A2
from table t1
where exists (select null from table t2 where t2.a2=t1.a2 and t2.a1 != t1.a1)


Автор: chiffa 15.3.2013, 12:31
Пасиба огромное! То что нужно! smile 

Автор: vga1978 19.4.2013, 15:01
Код

SQL> with table_ as
  2  (
  3  select 11 A1,  555 A2, 0 A3 from dual union all
  4  select 11 A1,  555 A2, 1 A3 from dual union all
  5  select 11 A1,  888 A2, 2 A3 from dual union all
  6  select 22 A1,  555 A2, 3 A3 from dual union all
  7  select 22 A1,  777 A2, 4 A3 from dual union all
  8  select 33 A1,  444 A2, 5 A3 from dual
  9  )
 10  select a1, a2
 11    from (select a1, a2, count(1) over(partition by a2) ncnt
 12            from table_
 13           group by a1, a2)
 14   where ncnt > 1;

        A1         A2
---------- ----------
        11        555
        22        555


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)