Скользящая сумма текущего счета - PullRequest
0 голосов
/ 05 мая 2020

У меня есть запрос SQL с использованием Spark SQL.

  1. Я хотел бы подсчитать значения для прокрутки 7 дней на основе 2 столбцов, это сделано
  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 дня вывода, как мне присоединиться к таблицам как

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...