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

Откуда:
Сообщений: 625
есть диапазоны:

ID FROM TO
1 1 5
2 2 4
3 6 7
4 6 10
5 11 15

Надо найти пересекающиеся по id
1 с 2
3 с 4
9 сен 15, 09:51    [18126495]     Ответить | Цитировать Сообщить модератору
 Re: Найти пересекаемые диапазоны  [new]
Glory
Member

Откуда:
Сообщений: 104760
И в чем проблема ? Как вы попробовали это сделать ?
9 сен 15, 09:53    [18126505]     Ответить | Цитировать Сообщить модератору
 Re: Найти пересекаемые диапазоны  [new]
Добрый Э - Эх
Guest
abort,

два диапазона пересекаются, если любое из их кончал больше любого из их начал.
9 сен 15, 09:54    [18126510]     Ответить | Цитировать Сообщить модератору
 Re: Найти пересекаемые диапазоны  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20596
abort
Надо найти пересекающиеся

Только пары?
9 сен 15, 10:05    [18126578]     Ответить | Цитировать Сообщить модератору
 Re: Найти пересекаемые диапазоны  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
WITH T AS(SELECT * FROM(VALUES
  (1, 1, 5)
 ,(2, 2, 4)
 ,(3, 6, 7)
 ,(4, 6, 10)
 ,(5, 11, 15)
 )D(ID,[FROM],[TO])
)
SELECT T1.ID,T2.ID
FROM T T1 JOIN T T2 ON T1.[FROM]<=T2.[TO] AND T1.[TO]>=T2.[FROM] AND T1.ID<T2.ID;
9 сен 15, 10:10    [18126610]     Ответить | Цитировать Сообщить модератору
 Re: Найти пересекаемые диапазоны  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
Add SQL Server Engine Support for Interval Queries (Intersection/Overlap and other Allen’s interval algebra relations) - by Itzik Ben-Gan

Relational Interval tree (RI-tree)
9 сен 15, 10:57    [18126873]     Ответить | Цитировать Сообщить модератору
 Re: Найти пересекаемые диапазоны  [new]
abort
Member

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

то что надо. Мерси
9 сен 15, 11:22    [18127073]     Ответить | Цитировать Сообщить модератору
 Re: Найти пересекаемые диапазоны  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
abort, для нахождения пересечений достаточно двух сравнений.
9 сен 15, 11:56    [18127295]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить