У меня есть запрос SQL с использованием Spark SQL.
- Я хотел бы подсчитать значения для прокрутки 7 дней на основе 2 столбцов, это сделано
- Исходя из вывода первой транзакции, я все равно хотел бы снова агрегировать его за скользящие 7 дней
+----------+--------+------+---------------+--------+
| col1| | col1 |col3 | col4 | date_id|
+----------+--------+------+---------------+--------+
|eVA3Nh | 16.9314| 72| 8b01bfffff|20191201|
|loCMK | 12.9988| 72| 8b29dfffff|20191202|
|7G0HL |718.8329| 144| 8b01bfffff|20191203|
|loCMK | 12.9988| 72| 8b29dfffff|20191204|
|7G0HL |718.8329| 144| 8b01bfffff|20191205|
|loCMK | 12.9988| 72| 8b29dfffff|20191206|
|loCMK | 12.9988| 72| 8b29dfffff|20191207|
|eVA3N | 16.9314| 72| 8b01bfffff|20191209|
|7G0HL |718.8329| 144| 8b01bfffff|20191212|
|7G0HL |718.8329| 144| 8b01bfffff|20191217|
|7G0HL |718.8329| 144| 8b01bfffff|20191219|
+----------+--------+------+---------------+--------+
Мне нужно количество (1) / 4 значений на основе col1 и col4 для 4 дней на постоянной основе
Когда я получу результат, я также хотел бы просуммировать за 4 дня на постоянной основе, пожалуйста, будьте любезны в своем ответе, спасибо.
select a.date_id,
a.col4,
a.col1,
count(1)/7
from {0} a
right join ({0}) f ON
a.col4 = f.col4 and a.col1=f.col1
and to_date(f.date_id, "yyyyMMdd") between date_sub(to_date(a.date_id, "yyyyMMdd"), 3)
and to_date(a.date_id, "yyyyMMdd")
group by 1,2,3
order by 1
Это рассчитано для прокатки 4 дня мне нужно рассчитать для прокатки 4 дня вывода, как мне присоединиться к таблицам как