Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выбор повторений по двум столбцам / 11 сообщений из 11, страница 1 из 1
11.09.2019, 15:54
    #39860390
borikgogi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор повторений по двум столбцам
Добрый день!
Помогите пожалуйста побороть вроде бы и простую задачу. Есть таблица с двумя колонками

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
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');



как получить результат чтобы выводило
Код: sql
1.
2.
'c101', 'B1',
'c110', 'B1'



Тоесть, запрос должен брать ячейку из столбца bCol (В1, B9, B8) и сравнивать с имеющимися данными столбца cCol, если по cCol есть несколько разных значений (в нашем случае с101 и с110 при B1) - выводить их в результат, на экран.
...
Рейтинг: 0 / 0
11.09.2019, 15:58
    #39860392
Посетитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор повторений по двум столбцам
borikgogi,

а куда c111 пропало?
...
Рейтинг: 0 / 0
11.09.2019, 16:00
    #39860393
borikgogi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор повторений по двум столбцам
Посетитель,
извените, проглядел ))
...
Рейтинг: 0 / 0
11.09.2019, 16:01
    #39860394
Посетитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор повторений по двум столбцам
borikgogiПосетитель,
извените, проглядел ))

count(*)over(partition by bCol) вам в помощь
...
Рейтинг: 0 / 0
11.09.2019, 16:07
    #39860398
borikgogi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор повторений по двум столбцам
Посетитель,

Спасибо большое. Пошел изучать over()
...
Рейтинг: 0 / 0
11.09.2019, 16:07
    #39860400
Dmitry_8888
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор повторений по двум столбцам
borikgogi,

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

select bcol
from @tmepTable
group by bcol
having count(*) >1
)
...
Рейтинг: 0 / 0
11.09.2019, 16:22
    #39860407
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор повторений по двум столбцам
borikgogi,

первичный ключ в таблице принципиально не делаете? Из высших соображений?
...
Рейтинг: 0 / 0
11.09.2019, 16:29
    #39860411
borikgogi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор повторений по двум столбцам
iap,

Для примера просто не стал его создавать, а так в каждой таблице делаю.
...
Рейтинг: 0 / 0
11.09.2019, 16:30
    #39860412
borikgogi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор повторений по двум столбцам
Dmitry_8888,

Спасибо, тоже интересный вариант.
...
Рейтинг: 0 / 0
11.09.2019, 16:38
    #39860416
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор повторений по двум столбцам
borikgogiiap,

Для примера просто не стал его создавать, а так в каждой таблице делаю.
Код: sql
1.
2.
3.
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);
...
Рейтинг: 0 / 0
11.09.2019, 16:40
    #39860419
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор повторений по двум столбцам
iapborikgogiiap,

Для примера просто не стал его создавать, а так в каждой таблице делаю.
Код: sql
1.
2.
3.
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);

Прошу прощения. Поторопился. Неправильно понял задачу.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выбор повторений по двум столбцам / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]