Выбор значения между диапазоном значений в улье - PullRequest
0 голосов
/ 13 мая 2019

Выберите курсы в таблицах курсов и значения между двумя валютами enter image description here Я использую подзапрос в условии условия, но Hive не поддерживает их

выберите код r1.currency_, код r1.rate

от курса r1

, где r1.rate> = (выберите r2.rate из курса r2, где r2.currency_code = 'GBP')

и r1.rate <= (выберите r3.rate из ставок r3, где r3.currency_code = 'ILS') </p>

Следует выбрать курс между GBP и ILS, но улей не поддерживает запрос

1 Ответ

0 голосов
/ 13 мая 2019

Использование условного агрегирования для получения скоростей gbp и ils в столбцы перед фильтрацией.

select base_currency,currency_code,rate
from (select r.*
            ,max(case when currency_code='GBP' then rate end) over(partition by base_currency) as gbp_rate
            ,max(case when currency_code='ILS' then rate end) over(partition by base_currency) as ils_rate
      from rate r
      where base_currency = 'USD'
     ) r
where rate >= gbp_rate and rate <= ils_rate
...