Я новый пользователь 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
для заполнения пустых дат нулями. Однако исполнение было ужасно медленным. Каков наилучший подход для этого?