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
) porAGENT_MASTER_ID
:obtém todas as linhas deT
com oAGENT_MASTER_ID
atual - na partição formada você
ORDER
linhas porROW_DT
- esta ordenação permite que você selecione as 30 linhas antes do
ROW_DT
atual :este é o significado doPRECEDING
palavra-chave (0
selecionaria a linha atual, o oposto é oFOLLOWING
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.