Я новый пользователь Hive, и мне нужно собрать сумму для данной таблицы. Рассмотрим упрощенный пример ниже:
SELECT day, sum(amount) FROM tableX WHERE columnA = 'RareValue' GROUP BY day;
Предположим, что не существует записи строки, которая соответствует условию в предложении WHERE
для некоторых дат. И поэтому результат запроса будет пропущен в те дни.
Например, вот результат, который я получаю:
date amount
2018-01-15 230
2018-01-13 210
2018-01-12 140
2018-01-11 222
Но это желаемый результат:
date amount
2018-01-15 230
2018-01-14 0
2018-01-13 210
2018-01-12 140
2018-01-11 222
Я пытался в этом создать последовательность дат, а затем использовать LEFT JOIN
и COALESCE
для заполнения пустых дат нулями. Тем не менее, производительность была ужасно медленной. Каков наилучший подход для этого?