com postgresSQL 13.6
Seguindo a pergunta daqui Adicione valor em uma coluna com base nos valores de um grupo de linhas .
com as linhas agrupadas por núm_serviço, é possível preencher a linha restante desse grupo, utilizando o mesmo texto já incluído em uma dessas linhas.
com a mesa:
data hora | carrinho | base | núm_serviço | modelo |
---|---|---|---|---|
2022 08 23 10:10 | aa | FORA | aa/202208/1 | |
2022 08 23 10:20 | aa | aa/202208/1 | ||
2022 08 23 10:30 | aa | DENTRO | aa/202208/1 | corporativo |
2022 08 23 10:05 | bb | FORA | bb/202208/1 | |
2022 08 23 10:10 | bb | bb/202208/1 | privado | |
2022 08 23 10:30 | bb | bb/202208/1 | ||
2022 08 23 10:35 | bb | DENTRO | bb/202208/1 | |
2022 09 23 10:10 | aa | FORA | aa/202209/1 | |
2022 09 23 10:20 | aa | aa/202209/1 | outro | |
2022 09 23 10:30 | aa | DENTRO | aa/202209/1 |
preencha assim:
data hora | carrinho | base | núm_serviço | modelo |
---|---|---|---|---|
2022 08 23 10:10 | aa | FORA | aa/202208/1 | corporativo |
2022 08 23 10:20 | aa | aa/202208/1 | corporativo | |
2022 08 23 10:30 | aa | DENTRO | aa/202208/1 | corporativo |
2022 08 23 10:05 | bb | FORA | bb/202208/1 | privado |
2022 08 23 10:10 | bb | bb/202208/1 | privado | |
2022 08 23 10:30 | bb | bb/202208/1 | privado | |
2022 08 23 10:35 | bb | DENTRO | bb/202208/1 | privado |
2022 09 23 10:10 | aa | FORA | aa/202209/1 | outro |
2022 09 23 10:20 | aa | aa/202209/1 | outro | |
2022 09 23 10:30 | aa | DENTRO | aa/202209/1 | outro |
a redação do tipo pode aparecer em qualquer uma das linhas de cada grupo.
estou tentando usar lag
expressão com apenas replicar o que está na linha anterior na coluna de seleção
Pelo que parece, você pode atualizar cada grupo com o valor máximo ou mínimo para esse grupo:
Não testado.
Você pode considerar mover o tipo para uma tabela separada (já que parece ser dependente de um atributo não chave em sua tabela atual)