Database
 sql >> Base de Dados >  >> RDS >> Database

Como calcular o total em execução no Redshift


O total cumulativo, também conhecido como total em execução, é uma métrica de KPI útil para monitorar os valores totais da soma ao longo do tempo. Se seus dados estiverem armazenados no Amazon Redshift, será muito fácil calcular a soma cumulativa no Redshift. Vamos ver como calcular o total de corridas no Redshift.


Como calcular o total em execução no Redshift


Aqui estão as etapas para calcular o total em execução no Redshift. Digamos que você tenha a seguinte tabela que contém as vendas diárias
postgres-#> create table sales(order_date date,sale int);

postgres-#> insert into sales values('2020-03-01',30),
('2020-03-02',35),('2020-03-03',25),('2020-03-04',40),('2020-03-05',30);

postgres-#> select * from sales;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-03-01 |   30 |
| 2020-03-02 |   35 |
| 2020-03-03 |   25 |
| 2020-03-04 |   40 |
| 2020-03-05 |   30 |
+------------+------+



Digamos que você queira calcular a soma cumulativa de vendas, assim,
+------------+------+-----------------+
| order_date | sale | cumulative_sale |
+------------+------+-----------------+
| 2020-03-01 |   30 |              30 |
| 2020-03-02 |   35 |              65 |
| 2020-03-03 |   25 |              90 |
| 2020-03-04 |   40 |             130 |
| 2020-03-05 |   30 |             160 |
+------------+------+-----------------+

Aqui está a consulta SQL para calcular o total de execução no Redshift. Como o Redshift é basicamente PostgreSQL, todas as suas funções e expressões estão disponíveis no PostgreSQL. Então, usaremos uma função Window, disponível no PostgreSQL, para fazer isso.
postgres=# SELECT order_date
          , sum(sale) over (order by order_date asc rows between unbounded preceding and current row)
          FROM   sales
          ORDER  BY order_date;

 order_date | sum
------------+-----
 2020-03-01 |  30
 2020-03-02 |  65
 2020-03-03 |  90
 2020-03-04 | 130
 2020-03-05 | 160

Vejamos a consulta acima em detalhes. A função SOMA acima calcula a soma cumulativa para cada linha. No entanto, usamos uma função Window OVER que nos ajuda a definir o número de linhas a serem usadas para calcular o total de execução no Redshift.



Bônus de leitura:Como calcular a média móvel no Redshift



Primeiro, ordenamos nossos dados cronologicamente por order_date para garantir que somamos as linhas corretas para cada soma cumulativa. Em seguida, para cada linha, informamos ao Redshift para somar venda coluna para todas as linhas anteriores. Fazemos isso usando a função de janela OVER e mencionamos linhas entre a linha anterior e a atual ilimitada . Ou seja, para cada linha, considere apenas as linhas anteriores para soma cumulativa.

À medida que o quadro da janela muda para cada linha, apenas as linhas anteriores serão usadas para calcular o total em execução.

Se você deseja filtrar seus dados antes de calcular o total de execução no Redshift, pode fazê-lo adicionando a cláusula WHERE, conforme mostrado abaixo.
postgres=# SELECT order_date
          , sum(sale) over (order by order_date asc rows between unbounded preceding and current row)
          FROM   sales
          ORDER  BY order_date
          WHERE <condition>;



Bônus de leitura: Como criar uma tabela dinâmica no PostgreSQL



Além disso, como o Redshift é basicamente o PostgreSQL, você também pode usar a consulta acima para calcular o total de execução no PostgreSQL.

Depois de calcular a soma cumulativa no Redshift, você pode usar uma ferramenta de visualização de dados do Redshift para plotá-la em um gráfico de linhas. Aqui está um exemplo de um gráfico de linhas para o total cumulativo, criado usando o Ubiq.





Se você deseja criar gráficos e painéis do banco de dados Redshift, experimente o Ubiq. Oferecemos um teste gratuito de 14 dias.