Как получить данные за последние 12 месяцев и разбить их по месяцам в разбивке по ВИЧ? - PullRequest
0 голосов
/ 20 декабря 2018

Формат таблицы для столбца даты «yyyyMMdd», и я использую следующие функции для преобразования в стандартный формат, чтобы можно было использовать день, месяцы и год HIVE для получения соответствующих значений.

(from_unixtime(unix_timestamp(cast(created_day as STRING) ,'yyyyMMdd'), 'yyyy-MM-dd'))

Чтобы получить данные текущего года, я бы вычел год, полученный из всех записей, из года, возвращенного текущей датой, и если он вернул ноль, то он падает в этом году.

(year(current_date()) - year(from_unixtime(unix_timestamp(cast(created_day as STRING) ,'yyyyMMdd'), 'yyyy-MM-dd'))) = 0

Проблема: Если текущая дата выпадает на январь, я получу только данные за январь, но мне нужно получить данные с февраля (прошлого года) по январь (текущий год)?

Также мне нужно масштабировать это дополучить последние 24 месяца.

enter image description here

1 Ответ

0 голосов
/ 20 декабря 2018

Я всегда устанавливаю свои параметры диапазона дат вне Hive и передаю их в качестве аргументов, поскольку это поддается воспроизводимости и тестируемости.

select <fields> from <table> where created_day between ${hiveconf:start_day} and ${hiveconf:end_day}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...