Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

O que significa precedente no Oracle?


Você obviamente está consultando uma tabela T com colunas WIN_30_DUR , AGENT_MASTER_ID e ROW_DT (entre outros). Lembre-se de que palavras-chave como OVER , PARTITION mostre que você está usando uma solicitação analítica:essas solicitações permitem que você obtenha informações sobre a linha atual das outras, que seriam complexas e longas para escrever com GROUP BY ou outras cláusulas "padrão".

Aqui, em uma determinada linha, você:
  • grupo (PARTITION ) por AGENT_MASTER_ID :obtém todas as linhas de T com o AGENT_MASTER_ID atual
  • na partição formada você ORDER linhas por ROW_DT
  • esta ordenação permite que você selecione as 30 linhas antes do ROW_DT atual :este é o significado do PRECEDING palavra-chave (0 selecionaria a linha atual, o oposto é o FOLLOWING cláusula)
  • então você faz uma soma no WIN_30_DUR campo

Na linguagem usual, isso significaria algo como:para cada agente, tome a soma das durações dos 30 dias anteriores.