Preciso escrever uma consulta SQL para um banco de dados PostGres. O objetivo é criar uma visualização baseada no conteúdo de uma tabela.
Esta é minha tabela inicial:
Rank Value
1 4
2 5
3 8
4 11
5 19
6 32
7 55
Esta é a visão que eu gostaria de construir:
Rank Value SumUpTo
1 4 4
2 5 9
3 8 17
4 11 28
5 19 47
6 32 79
7 55 134
As colunas Classificação e Valor foram apenas copiadas da tabela original. A coluna SumUpTo é calculada somando todos os valores da tabela original desde a classificação 1 até a classificação atual.
Eu tentei esse tipo de consulta, entre outras, mas tudo falhou:
CREATE VIEW myview AS SELECT rank,value,(SELECT SUM(value) FROM mytable WHERE (rank<rank)) as SumUpTo FROM mytable;
CREATE VIEW myview AS SELECT rank,value,(SELECT SUM(value) FROM mytable WHERE (rank<mytable.rank)) as SumUpTo FROM mytable;
Qual é a maneira correta de escrever a consulta para obter o resultado desejado?
Use
sum
função analítica:Adicione
create view
você mesmo; veja o violino , se quiser.