Oracle
 sql >> Database >  >> RDS >> Oracle

Cosa significa precedente in Oracle?

Ovviamente stai interrogando una tabella T con colonne WIN_30_DUR , AGENT_MASTER_ID e ROW_DT (tra gli altri). Tieni presente che parole chiave come OVER , PARTITION mostra che stai utilizzando una richiesta analitica:tali richieste ti permettono di ottenere informazioni sulla riga corrente dalle altre, che sarebbero complesse e lunghe da scrivere con GROUP BY o altre clausole "standard".

Qui, su una determinata riga, tu:

  • gruppo (PARTITION ) da AGENT_MASTER_ID :questo ottiene tutte le righe di T con AGENT_MASTER_ID corrente
  • nella partizione formata ORDER righe per ROW_DT
  • questo ordinamento ti consente di selezionare le 30 righe prima dell'attuale ROW_DT :questo è il significato del PRECEDING parola chiave (0 selezionerebbe la riga corrente, l'opposto è il FOLLOWING clausola)
  • poi fai una somma sul WIN_30_DUR campo

Nel linguaggio comune, ciò significherebbe qualcosa del tipo:per ogni agente, prendi la somma delle durate dei 30 giorni precedenti.