Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Найти одинаковые подмножества / 7 сообщений из 7, страница 1 из 1
14.11.2019, 15:38
    #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
14.11.2019, 15:38
    #39889162
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти одинаковые подмножества
едит: дан ридер=4, надо найти 1 и 5.
...
Рейтинг: 0 / 0
14.11.2019, 15:44
    #39889165
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти одинаковые подмножества
Тема обсуждалась на форуме кучу раз.
Ищите "реляционное деление"
...
Рейтинг: 0 / 0
14.11.2019, 22:32
    #39889306
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти одинаковые подмножества
msLex
Тема обсуждалась на форуме кучу раз.
Ищите "реляционное деление"
Where all in - где все строки есть в подзапросе
...
Рейтинг: 0 / 0
15.11.2019, 06:03
    #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
15.11.2019, 09:28
    #39889372
iap
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
15.11.2019, 12:20
    #39889490
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти одинаковые подмножества
Ролг Хупин,

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


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