T- SQL Проверка нескольких дубликатов - PullRequest
0 голосов
/ 30 мая 2020

Я столкнулся с этой проблемой - у меня такой результат выбора:

col1 col2           col3
5    95.91.232.198  1
8    95.91.232.198  1
9    95.91.222.206  5
152  95.91.222.206  1
25   95.91.204.108  5
5    95.91.204.108  5
  • column3 может иметь только 2 значения: 1 или 5

I хотите выбрать только те строки, которые имеют разные номера в column3 с дублированным ip - пример (что следует выбрать):

это должно быть выбрано

127.0.0.1   1
127.0.0.1   5

, а это не

127.0.0.1   1
127.0.0.1   1

Благодарю за любую помощь.

Ответы [ 2 ]

0 голосов
/ 30 мая 2020

Вы можете использовать ключевое слово DISTINCT для выбора только уникальных комбинаций значений.

Начальные данные:

col1 col2 col3
5   95.91.232.198   1
8   95.91.232.198   1
9   95.91.222.206   5
152 95.91.222.206   1
25  95.91.204.108   5
5   95.91.204.108   5

Пример:

SELECT DISTINCT col2, col3
FROM [table]

Вывод:

col2 col3
95.91.232.198   1
95.91.222.206   5
95.91.222.206   1
95.91.204.108   5
0 голосов
/ 30 мая 2020

С EXISTS:

select t.* from tablename t
where exists (
  select 1 from tablename
  where col2 = t.col2 and col3 <> t.col3
)

Или, если вам нужны только IPS:

select col2
from tablename
group by col2
having count(distinct col3) = 2 
...