SQL Выберите приоритетные данные из перекрывающихся диапазонов дат - PullRequest
0 голосов
/ 31 марта 2020

У меня есть две таблицы с перекрывающимися данными (в реальных таблицах больше столбцов, но ключ, из которого мне нужно удалить перекрытия, это дата): Давайте назовем их:

HighPri

╔════════╦═══════╗
║  Date  ║ Value ║
╠════════╬═══════╣
║ Dec-19 ║     1 ║
║ Jan-20 ║     2 ║
║ Feb-20 ║     3 ║
╚════════╩═══════╝

и LoPri

╔════════╦═══════╗
║  Date  ║ Value ║
╠════════╬═══════╣
║ Jan-20 ║     5 ║
║ Feb-20 ║     6 ║
║ Mar-20 ║     7 ║
╚════════╩═══════╝

И я ищу Sql Запрос к серверу, который вернул бы это. (преимущественно High pri, где есть перекрытие, вот LoPri):

╔════════╦═══════╗
║  Date  ║ Value ║
╠════════╬═══════╣
║ Dec-19 ║     1 ║
║ Jan-20 ║     2 ║
║ Feb-20 ║     3 ║
║ Mar-20 ║     7 ║
╚════════╩═══════╝

В поисках чистого sql решения.

1 Ответ

2 голосов
/ 31 марта 2020

Я понимаю это как full join с coalesce() для приоритетов:

select coalesce(h.date, l.date) as date,
       coalesce(h.value, l.value) as value
from highPri h full outer join
     lowPri l 
     on h.date = l.date;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...