Как найти записи с повторяющимися значениями для некоторых конкретных столбцов только в Oracle / PL - PullRequest
0 голосов
/ 12 июня 2018

Я работаю в PL / SQL Developer с Oracle.

У меня есть простой запрос SQL ниже:

  select 
          col1
          col2,
          col3,
          col4,
          col5

  from table t1
   (condition required)
  and  col1=X or col=X or...

, и я хочу выбрать все разные записи, имеющие col2 и col3 с одинаковымиценности.Например:

Запись 1: col2 = 5 col3 = оранжевый
Запись 2: col2 = 5 col3 = оранжевый
Запись 3: col2 = 8 col3 = яблоко
Запись 4: col2 = 8 col3 = яблоко

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Используйте аналитические функции:

select t.*
from (select t.*, count(*) over (partition by col2, col3) as cnt
      from t
     ) t
where cnt > 1
order by col2, col3;
0 голосов
/ 12 июня 2018
select 
          t1.col1
          t1.col2,
          t1.col3,
          t1.col4,
          t1.col5
from table t1
join table t2 on t1.col2 = t2.col2 and t1.col3 = t2.col3 and t1.rowid <> t2.rowid
where ...
;

Если в таблице есть столбец первичного ключа, используйте его вместо rowid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...