powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Найти одинаковые подмножества
7 сообщений из 7, страница 1 из 1
Найти одинаковые подмножества
    #39889160
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица, надо по указанному ид ридера найти других, с таким же набором данных как и у исходного
Упрощенно так: дан ридер=4, надо найти 4 и 5.
Количество записей не всегда 3, определяется исходным ид, в данном примере=4

Как запросом выбрать читателей с таким же набором как и исходный?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
declare @t table
(
reader int not null,
book int,
pages int
)
insert into @t (reader, book,pages)
select 1, 1,100
union
select 1, 2,201
union
select 1, 3,301
union
select 2, 1,100
union
select 2, 3,101
union
select 2, 3,301
union 
select 3, 1,100
union
select 3, 2,101
union
select 3, 3,301
union
select 4, 1,100
union
select 4, 2,201
union
select 4, 3,301
union
select 5, 1,100
union
select 5, 2,201
union
select 5, 3,301

select * from @t
...
Рейтинг: 0 / 0
Найти одинаковые подмножества
    #39889162
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
едит: дан ридер=4, надо найти 1 и 5.
...
Рейтинг: 0 / 0
Найти одинаковые подмножества
    #39889165
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тема обсуждалась на форуме кучу раз.
Ищите "реляционное деление"
...
Рейтинг: 0 / 0
Найти одинаковые подмножества
    #39889306
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
Тема обсуждалась на форуме кучу раз.
Ищите "реляционное деление"
Where all in - где все строки есть в подзапросе
...
Рейтинг: 0 / 0
Найти одинаковые подмножества
    #39889342
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap
msLex
Тема обсуждалась на форуме кучу раз.
Ищите "реляционное деление"
Where all in - где все строки есть в подзапросе


Ленивые все стали
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare @reader int;
 set @reader = 4;

with t as ( select * from @t)
   , t1 as ( select * from t where reader = @reader )
   , r as ( select distinct reader from t)
  select * from r
           where exists( select book, pages from t1 intersect select book, pages from t where t.reader = r.reader )
                 and not exists( select book, pages from t1 except select book, pages from t where t.reader = r.reader )
                 and not exists( select book, pages from t where t.reader = r.reader except  select book, pages from t1 )
...
Рейтинг: 0 / 0
Найти одинаковые подмножества
    #39889372
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222


Ленивые все стали
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare @reader int;
 set @reader = 4;

with t as ( select * from @t)
   , t1 as ( select * from t where reader = @reader )
   , r as ( select distinct reader from t)
  select * from r
           where exists( select book, pages from t1 intersect select book, pages from t where t.reader = r.reader )
                 and not exists( select book, pages from t1 except select book, pages from t where t.reader = r.reader )
                 and not exists( select book, pages from t where t.reader = r.reader except  select book, pages from t1 )

А меня-то за шо?!
...
Рейтинг: 0 / 0
Найти одинаковые подмножества
    #39889490
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

Соберите наборы данных в некую строку (NVARCHAR(MAX) -- '100-101-301'), вычислите HASH (MD5) от этой строки. Используйте совпадение хешей для поиска одинаковых.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Найти одинаковые подмножества
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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