Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Выбор повторений по двум столбцам  [new]
borikgogi
Member

Откуда:
Сообщений: 9
Добрый день!
Помогите пожалуйста побороть вроде бы и простую задачу. Есть таблица с двумя колонками

declare @tmepTable table (cCol varchar(MAX), bCol varchar(MAX));

INSERT INTO @tmepTable
	VALUES  ('c101', 'B1'),
		('c101', 'B1'),
		('c103', 'B9'),
		('c101', 'B8'),
		('c110', 'B1'),
		('c111', 'B1');


как получить результат чтобы выводило
'c101', 'B1',
'c110', 'B1'


Тоесть, запрос должен брать ячейку из столбца bCol (В1, B9, B8) и сравнивать с имеющимися данными столбца cCol, если по cCol есть несколько разных значений (в нашем случае с101 и с110 при B1) - выводить их в результат, на экран.
11 сен 19, 15:54    [21968636]     Ответить | Цитировать Сообщить модератору
 Re: Выбор повторений по двум столбцам  [new]
Посетитель
Member

Откуда:
Сообщений: 1318
borikgogi,

а куда c111 пропало?
11 сен 19, 15:58    [21968639]     Ответить | Цитировать Сообщить модератору
 Re: Выбор повторений по двум столбцам  [new]
borikgogi
Member

Откуда:
Сообщений: 9
Посетитель,
извените, проглядел ))
11 сен 19, 16:00    [21968640]     Ответить | Цитировать Сообщить модератору
 Re: Выбор повторений по двум столбцам  [new]
Посетитель
Member

Откуда:
Сообщений: 1318
borikgogi
Посетитель,
извените, проглядел ))


count(*)over(partition by bCol) вам в помощь
11 сен 19, 16:01    [21968641]     Ответить | Цитировать Сообщить модератору
 Re: Выбор повторений по двум столбцам  [new]
borikgogi
Member

Откуда:
Сообщений: 9
Посетитель,

Спасибо большое. Пошел изучать over()
11 сен 19, 16:07    [21968647]     Ответить | Цитировать Сообщить модератору
 Re: Выбор повторений по двум столбцам  [new]
Dmitry_8888
Member

Откуда:
Сообщений: 36
borikgogi,

select distinct cCol
, bCol
from @tmepTable where bcol in (

select bcol
from @tmepTable
group by bcol
having count(*) >1
)
11 сен 19, 16:07    [21968649]     Ответить | Цитировать Сообщить модератору
 Re: Выбор повторений по двум столбцам  [new]
iap
Member

Откуда: Москва
Сообщений: 46838
borikgogi,

первичный ключ в таблице принципиально не делаете? Из высших соображений?
11 сен 19, 16:22    [21968657]     Ответить | Цитировать Сообщить модератору
 Re: Выбор повторений по двум столбцам  [new]
borikgogi
Member

Откуда:
Сообщений: 9
iap,

Для примера просто не стал его создавать, а так в каждой таблице делаю.
11 сен 19, 16:29    [21968664]     Ответить | Цитировать Сообщить модератору
 Re: Выбор повторений по двум столбцам  [new]
borikgogi
Member

Откуда:
Сообщений: 9
Dmitry_8888,

Спасибо, тоже интересный вариант.
11 сен 19, 16:30    [21968665]     Ответить | Цитировать Сообщить модератору
 Re: Выбор повторений по двум столбцам  [new]
iap
Member

Откуда: Москва
Сообщений: 46838
borikgogi
iap,

Для примера просто не стал его создавать, а так в каждой таблице делаю.
SELECT *
FROM @tmepTable T
WHERE EXISTS(SELECT * FROM @tmepTable TT WHERE T.cCol=TT.cCol AND T.bCol=TT.bCol AND T.ID<>TT.ID);
11 сен 19, 16:38    [21968670]     Ответить | Цитировать Сообщить модератору
 Re: Выбор повторений по двум столбцам  [new]
iap
Member

Откуда: Москва
Сообщений: 46838
iap
borikgogi
iap,

Для примера просто не стал его создавать, а так в каждой таблице делаю.
SELECT *
FROM @tmepTable T
WHERE EXISTS(SELECT * FROM @tmepTable TT WHERE T.cCol=TT.cCol AND T.bCol=TT.bCol AND T.ID<>TT.ID);
Прошу прощения. Поторопился. Неправильно понял задачу.
11 сен 19, 16:40    [21968673]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить