Вы также можете выполнять подзапросы в Hive.
В вашем примере я присоединяюсь к двум подзапросам.
WITH t AS(
SELECT t2.category AS category, t2.date AS date, COUNT(*) AS past_week
FROM table_dos t2
JOIN table_uno t1 ON(t2.category = t1.category)
WHERE t2.date >= t1.date AND
CEIL(DATEDIFF(to_date(t2.date),to_date(t1.date)) / 7) <= 1
GROUP BY t2.category, t2.date)
SELECT t.category AS category, t.date AS date ,t.past_week AS past_week, t2.past_2_weeks AS past_2_weeks
FROM t
JOIN (SELECT t2.category AS category, t2.date AS date, COUNT(*) AS past_2_weeks
FROM table_dos t2
JOIN table_uno t1 ON(t2.category = t1.category)
WHERE t2.date >= t1.date AND
CEIL(DATEDIFF(to_date(t2.date),to_date(t1.date)) / 7) <= 2
GROUP BY t2.category, t2.date) AS t2
ON(t.category = t2.category)
WHERE t.date = t2.date
ORDER BY category, date DESC;
ожидаемый результат с данными
+-----------+-------------+------------+---------------+--+
| category | date | past_week | past_2_weeks |
+-----------+-------------+------------+---------------+--+
| ABC1 | 2018-10-30 | 1 | 3 |
| ABC1 | 2018-10-23 | 2 | 2 |
| ABC2 | 2018-10-24 | 2 | 3 |
| ABC2 | 2018-10-21 | 1 | 2 |
+-----------+-------------+------------+---------------+--+
Я надеюсь, что это может быть полезно или поможет вам решить вашу проблему.
С уважением.