Estou tentando selecionar agg_cost
um determinado id
e subtrair isso de todas as outras linhas. Em seguida, divida o resultado em duas colunas: downstream
para resultados negativos, upstream
para resultados positivos. Gostaria de gerar uma tabela separada para cada subtração.
Dados da tabela de amostra:
agg_cost | eu ia |
---|---|
351.2267005 | 2.1 |
3444.240963 | 2.2 |
13337.39965 | 2.3 |
24618.73032 | 2.4 |
29523.72328 | 2,5 |
50051.75197 | 1,8 |
72884.10893 | 1,9 |
139114.7436 | 3.1 |
0 | origem |
Exemplo de cálculo para dado id = 2.5
:
- origem = 2,5 (29523,723) - origem (0) = 29523,723
- 2,1 = 2,5 (29523,723) - 2,1 (351,226) = 29172,49658
- ... etc.
Resultado desejado:
identificação 2,5 | A montante | Rio abaixo |
---|---|---|
eu ia | ||
origem | 29523.72328 | |
2.1 | 29172.49658 | |
2.2 | 26079.48231 | |
2.3 | 16186.32363 | |
2.4 | 4904.992963 | |
1,8 | -20528.0287 | |
1,9 | -43360.38565 | |
3.1 | -109591.0203 |
violino
Você pode usar apenas uma única coluna de resultado (
diff
na subconsulta). Depois de dividir em dois, preenchonull
o valor que falta. (CASE
o padrão énull
quandoELSE
está faltando.)Assumindo todas as colunas
NOT NULL
, ou talvez seja necessário fazer mais.